【问题标题】:MS Access VBA DLookup Function ErrorMS Access VBA DLookup 函数错误
【发布时间】:2017-05-27 07:03:21
【问题描述】:

我创建了几个函数来确定 MS Access 中用户的权限级别。我有一个名为 tblEmployees 的表,其中包含以下字段:(FirstName、LastName、Email、Role、Login、PermissionLevel)。

我已经创建了这个函数来确定“登录”(每次都可以正常工作):

Option Compare Database Public intPermissionLevel As Integer

Public Function getUserName() As String  
     getUserName = Environ("USERNAME") 
End Function

然后我创建了这个函数来使用上面的 getUserName 函数为“登录”字段提供的值来查找权限级别。正确的值被传递到“LookupPermissionLevel”函数中,但是我每次都收到以下错误。 (ct627 是我的用户名,它包含在 tblEmployees 中)

“作为查询参数输入的表达式产生了这个错误:'ct627'”

Public Function LookUpPermissionLevel(getUserName As String) As Integer        
      intPermissionLevel = DLookup("PermissionLevel", "tblEmployees", "Login =" & getUserName)

End Function

【问题讨论】:

  • 在getusername之后添加另一个'
  • 我尝试在 getUserName 之前、getUserName 之后以及 getUserName 之前和之后添加单引号。我还尝试了所有带双引号的组合。这些都不起作用。

标签: ms-access vba ms-access-2016


【解决方案1】:
Public Function LookUpPermissionLevel(getUserName As String) As Integer        
      intPermissionLevel = DLookup("PermissionLevel", "tblEmployees", "Login ='" & getUserName & "'")
LookUpPermissionLevel=intPermissionLevel
End Function

【讨论】:

  • 在 getusername 之前添加另一个 ' ;-)
  • 我尝试在 getUserName 之前、getUserName 之后以及 getUserName 之前和之后添加单引号。我还尝试了所有带双引号的组合。这些都不起作用。
【解决方案2】:

我认为你实际上都是正确的。谢谢!这就是我需要做的:

intPermissionLevel = DLookup("[PermissionLevel]", "tblEmployees", "[Login]='" & getUserName & "'")

【讨论】:

    猜你喜欢
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    相关资源
    最近更新 更多