0

有没有办法将 Windows 登录信息传递给 Access 中的字符串?我需要一种自动检测位于中央位置的多用户数据库中的用户的方法。提前致谢。

4

3 回答 3

2

这是我在带有 Windows XP 和 Windows 7 机器的域网络上使用的内容。我不确定它如何在非域网络上工作,或者你根本没有网络。

Public Function GetComputerUserName()
    Dim objnet As Object
    Set objnet = CreateObject("WScript.Network")
    GetComputerUserName = objnet.UserName
    Set objnet = Nothing
End Function
于 2012-10-15T13:13:03.147 回答
1

The most reliable way is to use a Windows API call:

'This line must go at top of module
Private Declare Function WNetGetUser& Lib "Mpr" Alias _
                "WNetGetUserA" (lpName As Any, ByVal lpUserName$, lpnLength&)


Function GetUserName() As String
Const MaxNameLength As Long = 256
Dim ret As Long, UserName As String

    UserName = Space(256)
    ret = WNetGetUser(ByVal 0&, UserName, MaxNameLength)
    If ret = 0 Then
        'Success - strip off the null.
        UserName = Left(UserName, InStr(UserName, Chr(0)) - 1)
    Else
        UserName = ""
    End If

    GetUserName = LCase$(UserName)
End Function
于 2012-10-15T13:10:18.037 回答
0

你可以;

user = Environ$("USERNAME")
于 2012-10-15T16:06:14.237 回答