使用变量时DLookup无法正常工作?

时间:2014-03-19 18:23:55

标签: vba ms-access access-vba ms-access-2010

我有一些在表单加载上运行的代码:

 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

1 个答案:

答案 0 :(得分:4)

userNameloginID是文字类型,因此请将loginID的值括在引号中。

DLookup("permissions", "Users", "userName = '" & loginID & "'")