首页 > 解决方案 > 使用系统用户名授予权限

问题描述

我有一个获取当前用户 ID 的全局函数。它的工作文件。现在我想将它与我想要访问该程序的表中的用户列表进行比较。我的表是 Tbl_Staff 保存每个人的值的字段是 UserID 我的函数称为 GetUserName 这是我到目前为止所拥有的:

Private Sub Form_Load()

Dim Message         As String
Dim Currentdb       As DAO.Database
Dim RecSet          As DAO.Recordset

Set RecSet = Currentdb.OpenRecordset("SELECT * FROM Tbl_Staff WHERE [Tbl_Staff].[UserID] = UserName())

If UserName = RecSet Then

Exit Sub

    Else

        Message = MsgBox("You do not have permission to access this database." & vbCrLf & "Please contact Robert Smith for access", vbOKOnly)

    DoCmd.CloseDatabase
    End If

End Sub

我真的被困住了。谢谢

标签: vbams-access

解决方案


像这样的东西:

Private Sub Form_Load()
    Dim RecSet As DAO.Recordset

    Set RecSet = Application.Currentdb.OpenRecordset( _
       "SELECT * FROM Tbl_Staff WHERE [Tbl_Staff].[UserID] = '" & UserName() & "'")

    If RecSet.EOF Then
        MsgBox "You do not have permission to access this database." & _
                vbCrLf & "Please contact Robert Smith for access"

        DoCmd.CloseDatabase
    End If

End Sub

可能需要调整 SQL 以解决数据库中的用户名与 UserName() 的返回值之间的差异


推荐阅读