交互のセッションで Access アプリケーションを実行すると、関数Environ("username")
は、コードの実行に現在使用しているマシンの実際のユーザーではなく、部門内のユーザー名を返します。
プログラム全体で、他のタイプのユーザー名操作は発生しません。
これがどのように可能か考えていますか?
これは、Windows API 関数を使用して、現在ログインしているユーザーの名前を返します。
'// API Declarations
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) _
As Long
Function UserName() As String
'// Returns the name of the logged-in user
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
UserName = Left(Buffer, BuffLen - 1)
'MsgBox UserName
End Function