代码之家  ›  专栏  ›  技术社区  ›  shiv chhabra

无法使用变量字段获取DLookup值

  •  0
  • shiv chhabra  · 技术社区  · 7 年前

    我在Access中有一个名为BAF_User的userform,有2个字段(BAFUser,BRID)。

    我使用下面的代码获取windows用户名,然后使用DLookup进行比较,获得登录到Access文件的用户的全名。

    Option Compare Database
    
    Public Function GetUserName() As String
     Dim wshNet As Object
     Dim  As String
     Set wshNet = CreateObject("WScript.Network")
     GetUserName = wshNet.UserName
     Set wshNet = Nothing
     MyName = DLookup("[BAFUser]", "BAF_User", "[BRID] = '" & GetUserName & " '")
    End Function
    
    Private Sub Form_Load()
     MsgBox "Welcome" + MyName
    End Sub
    

    但这并没有显示出价值,我无法抓住我做错了什么。

    谢谢你的帮助。

    1 回复  |  直到 7 年前
        1
  •  0
  •   June7    7 年前

    为什么使用全局变量?只需调用函数并使其返回值。

    Public Function GetUserName() As String
     Dim wshNet As Object
     Set wshNet = CreateObject("WScript.Network")
     GetUserName = DLookup("[BAFUser]", "BAF_User", "[BRID] = '" & wshNet.UserName & "'")
     Set wshNet = Nothing
    End Function
    
    Private Sub Form_Load()
     MsgBox "Welcome " & GetUserName
    End 
    

    另一种选择:
    MsgBox "Welcome " & DLookup("[BAFUser]", "BAF_User", "[BRID] = '" & Environ("USERNAME") & "'"