|
本帖最后由 todaynew 于 2009-7-29 14:32 编辑
yysky 同志提出了一个用Access操作Execl的问题,大意是希望能对若干张表按照操作人的不同分别进行显示。这个问题有些趣味,便研究了一番。考虑到该同志的Execl表结构复杂,不便转换为Access数据库,便考虑还是用原表,只是在Access中设权限对原表进行一些显示上的限制。不过这种办法实际上在Execl中是可以还原的,如果yysky 同志只是为了防止其同事误操作的话,这个办法还是可行的。
Private Sub 打开表格_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim myname As String
Dim x As Boolean, y As String
Dim i As Long
If IsNull(Me.人员ID.Value) = False And IsNull(DLookup("密码", "人员表", "人员ID=" & Me.人员ID.Value)) = False Then
x = Nz(Me.密码.Value, "") = DLookup("密码", "人员表", "人员ID=" & Me.人员ID.Value)
If x = True Then
Set xlApp = CreateObject("Excel.Application")
xlApp.Application.Visible = True
Set xlBook = xlApp.Workbooks.Open(CurrentProject.Path & "\LCD生产工令单.xls")
y = DLookup("权限", "人员表", "人员ID=" & Me.人员ID.Value)
If y = "全部" Then
For i = 1 To xlBook.Sheets.Count
xlBook.Sheets(i).Visible = True
Next
Else
myname = DLookup("部门表名", "部门表", "部门ID=" & Me.部门ID.Value)
xlBook.Sheets(myname).Visible = True
For i = 1 To xlBook.Sheets.Count
If xlBook.Sheets(i).Name <> myname Then
xlBook.Sheets(i).Visible = False
End If
Next
End If
Else
MsgBox "密码错误!"
End If
End If
Me.密码.Value = Null
Set xlboox = Nothing
Set xlApp = Nothing
End Sub |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|