ms-access - 使用变量时 DLookup 不起作用?

标签 ms-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)

当我运行此代码时,“测试”消息框起作用并弹出我的 Windows 登录 ID,但是当代码继续运行并进入 DLookup 时,我收到 VBA 错误:

2471 您作为查询参数输入的表达式产生了此错误: '莫林达夫'

如果我将 Dlookup 语句更改为:

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

我收到错误“94”,无效使用 Null。

如果我保留与上面相同的语法,但手动输入我正在测试的用户值,如下所示:

MsgBox DLookup("permissions", "Users", "userName = 'MORINDAV'")

该语句有效,VBA 向我显示一个包含该用户权限级别的消息框。

我确信这是一个语法问题,但在使用变量:loginID 时我似乎无法让 DLookup 工作

最佳答案

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

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

关于ms-access - 使用变量时 DLookup 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22514876/

相关文章:

sql - Access SQL - 根据条件删除具有相同标识符的记录

vba - Excel VBA : Copying across unique rows from one sheet to another

VBA 在每个循环中插入工作表名称

vba - 使用 excel vba 将数据从 excel 2010 导出到 Access 表 2010 时运行时错误无法识别的数据库

vba - MS Access RunCode 宏找不到我的程序

ms-access - 整数类型的最大值是否有常量?

ms-access - Access 2010 中使用 IsNull 和多个条件的 DLookup

excel - 从 Excel 查看到 Access DB 的后端连接

mysql - 访问 选择最小数量 最大日期

mysql - MS Access 组合框未获取行源值