Home Privacy Policy Feedback Link to us Site Map

Access: Retrieve the user name from Windows in Access 2003/XP/2000/97


Question:  In Access 2003/XP/2000/97, how can I retrieve the name of the user logged into Windows?

Answer:  To retrieve the user name from Windows, create a new Module in Access.

Paste the following code into the Module:

Declare Function WNetGetUser Lib "mpr.dll" _
     Alias "WNetGetUserA" (ByVal lpName As String, _
     ByVal lpUserName As String, lpnLength As Long) As Long

Const NoError = 0                    'The Function call was successful

Function GetUserName() As String

     Dim LUserName As String
     Const lpnLength As Integer = 255
     Dim status As Integer
     Dim lpName

     ' Assign the buffer size constant to lpUserName.
     LUserName = Space$(lpnLength + 1)

     ' Get the log-on name of the person using product.
     status = WNetGetUser(lpName, LUserName, lpnLength)

     ' See whether error occurred.
     If status = NoError Then
          ' This line removes the null character. Strings in C are null-
          ' terminated. Strings in Visual Basic are not null-terminated.
          ' The null character must be removed from the C strings to be used
          ' cleanly in Visual Basic.
          LUserName = Left$(LUserName, InStr(LUserName, Chr(0)) - 1)

     Else
          ' An error occurred.
          MsgBox "Unable to get the name."
          End
     End If

     GetUserName = LUserName

End Function


Your module should now look something like this:


You can now reference this function to retrieve the user name from Windows.

For example, you could reference the function called GetUserName in a query as follows: