我有一些在表单加载上运行的代码:
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)
当我运行此代码时,“test”消息框工作,它弹出我的Windows登录ID,但是当代码继续并且我到达DLookup时,我收到VBA错误:
2471您作为查询参数输入的表达式产生了此错误: 'MORINDAV'
如果我将Dlookup语句更改为:
MsgBox DLookup("permissions", "Users", "userName = 'loginID'")
我收到错误'94',无效使用Null。
如果我保持与上面相同的语法,但手动输入我正在测试的用户值,如下所示:
MsgBox DLookup("permissions", "Users", "userName = 'MORINDAV'")
该语句有效,VBA向我显示了一个包含该用户权限级别的消息框。
我确定这是一个语法问题,但在使用变量时我似乎无法使用DLookup:loginID
答案 0 :(得分:4)
userName
和loginID
是文字类型,因此请将loginID
的值括在引号中。
DLookup("permissions", "Users", "userName = '" & loginID & "'")