我有一些在表单加载时运行的代码:
Private Sub Form_Load()
'Declare the username variable
Dim loginID As String
'Get the username from the environment array variable
loginID = Environ("USERNAME")
'Pop up a message box stating the obvious and checking the variable is set
MsgBox ("Hello " & loginID")
'Lookup the permissions of the user based on the windows logon
MsgBox DLookup("permissions", "Users", "userName = " & loginID)
当我运行此代码时,“测试”消息框起作用并弹出我的 Windows 登录 ID,但是当代码继续运行并进入 DLookup 时,我收到 VBA 错误:
2471 您作为查询参数输入的表达式产生了此错误: '莫林达夫'
如果我将 Dlookup 语句更改为:
MsgBox DLookup("permissions", "Users", "userName = 'loginID'")
我收到错误“94”,无效使用 Null。
如果我保留与上面相同的语法,但手动输入我正在测试的用户值,如下所示:
MsgBox DLookup("permissions", "Users", "userName = 'MORINDAV'")
该语句有效,VBA 向我显示一个包含该用户权限级别的消息框。
我确信这是一个语法问题,但在使用变量:loginID 时我似乎无法让 DLookup 工作
最佳答案
userName
和 loginID
是文本类型,因此将 loginID
的值括在引号中。
DLookup("permissions", "Users", "userName = '" & loginID & "'")
关于ms-access - 使用变量时 DLookup 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22514876/