У меня есть пользовательская форма в Access с именем BAF_User с двумя полями (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

Но это не показывает ценность, я не могу понять, что я сделал не так.

Спасибо за помощь.

0
shiv chhabra 2 Дек 2017 в 21:50

1 ответ

Лучший ответ

Зачем использовать глобальную переменную? Просто вызовите функцию, и она вернет значение.

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") & "'"

0
June7 2 Дек 2017 в 23:36