Vba Environ(“用户名”)返回错误的用户名
当我在交替会话中执行Access应用程序时,函数Vba Environ(“用户名”)返回错误的用户名,vba,ms-access,environ,Vba,Ms Access,Environ,当我在交替会话中执行Access应用程序时,函数Environ(“用户名”)将返回我所在部门的人员的用户名,而不是我当前使用其机器执行代码的实际用户 在整个程序中不会发生其他类型的用户名操作 知道这是如何实现的吗?这使用Windows API函数返回当前登录的用户的名称 '// API Declarations Private Declare Function GetUserName Lib "advapi32.dll" _ Alias "GetUserNameA" (ByVal lpBuffe
Environ(“用户名”)
将返回我所在部门的人员的用户名,而不是我当前使用其机器执行代码的实际用户
在整个程序中不会发生其他类型的用户名操作
知道这是如何实现的吗?这使用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
这使用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
也许您知道这一点,但您的问题并不清楚。Environ(“username”)应该返回登录用户的用户名,而不是机器上的人……我不明白发生了什么。如果您在该计算机上打开命令提示窗口并要求输入
echo%username%
,是否会给您一个不同于您从VBA环境(“username”)
中获得的名称?在Access Immediate窗口中,这会给您显示什么名称Debug.Print CreateObject(“WScript.Network”).Username
也许您知道这一点,但您的问题并不清楚。Environ(“username”)应该返回登录用户的用户名,而不是机器上的人……我不明白发生了什么。如果您在该计算机上打开命令提示窗口并要求输入echo%username%
,是否会给您一个不同于您从VBA环境(“username”)
中获得的名称?在Access Immediate窗口中,这会给您显示什么名称<代码>Debug.Print CreateObject(“WScript.Network”).Username