Office中国论坛/Access中国论坛

标题: 给yysky 同志一个解决E表选择性操作的解决方案 [打印本页]

作者: todaynew    时间: 2009-7-29 14:31
标题: 给yysky 同志一个解决E表选择性操作的解决方案
本帖最后由 todaynew 于 2009-7-29 14:32 编辑

yysky 同志提出了一个用Access操作Execl的问题,大意是希望能对若干张表按照操作人的不同分别进行显示。这个问题有些趣味,便研究了一番。考虑到该同志的Execl表结构复杂,不便转换为Access数据库,便考虑还是用原表,只是在Access中设权限对原表进行一些显示上的限制。不过这种办法实际上在Execl中是可以还原的,如果yysky 同志只是为了防止其同事误操作的话,这个办法还是可行的。

[attach]39057[/attach]

[attach]39058[/attach]

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
作者: liwen    时间: 2009-7-29 15:00
如果只是需要进行权限设置,我想没必要在A和E中进行跳转.
作者: yanwei82123300    时间: 2009-7-29 15:19
看看学学,再说
作者: goto2008    时间: 2009-7-29 23:18
瞄瞄
作者: asklove    时间: 2009-7-30 08:58
下载




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3