我们在Microsoft Word 2007中运行Microsoft Visual Basic应用程序。数据被写入Access 2000或2002数据库。它在Windows Vista 32位操作系统中正常运行,没有任何问题。但是,当使用Microsoft Word 2007在Windows 7 64位操作系统上运行相同的可视基本代码时,将显示以下VB 错误:
username2 = Environ("username")
非常感谢任何协助。
谢谢。
答案 0 :(得分:2)
修改强>
尝试CreateObject("WScript.Network").UserName
尝试VBA.Environ("username")
我目前不在Windows 7上,但今天晚些时候我会再测试一下是否找不到解决方案。
答案 1 :(得分:1)
我已广泛使用here中的以下函数,而不会遇到问题。我有几个你正在描述的方法。
Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function fOSUserName() As String
' Returns the network login name
Dim lngLen As Long, lngX As Long
Dim strUserName As String
strUserName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strUserName, lngLen)
If (lngX > 0) Then
fOSUserName = Left$(strUserName, lngLen - 1)
Else
fOSUserName = vbNullString
End If
End Function