2009-03-24 9 views

Antwort

20
Public Declare Function GetUserName Lib "advapi32.dll" 
    Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long 

....

Dim strLen As Long 
Dim strtmp As String * 256 
Dim strUserName As String 

strLen = 255 
GetUserName strtmp, strLen 
strUserName = Trim$(TrimNull(strtmp)) 

Es stellte sich heraus Frage gestellt wurde, bevor: How can I get the currently logged-in windows user in Access VBA?

+0

Ich habe nicht gesehen, dass die Frage zuvor gestellt wurde. Danke, trotzdem –

+0

Beachten Sie, dass 'Declare' nicht in 64-Bit Access verfügbar ist. –

32

Try this:

Function UserNameWindows() As String 
    UserName = Environ("USERNAME") 
End Function 
+2

Beachten Sie, dass dies von den Nutzern/Anwendungen geändert werden ... –

+9

Es ist vielleicht nicht immer 100% sicher, aber seien wir ehrlich, wir reden über VBA. Ich für einen, wähle den einfachen Weg :) – Eric

+1

@Eric +1 Hier. Wenn Sie daran interessiert sind, sollten Sie Access nicht von Anfang an verwenden. – Hill

-1

in einer Form, ein Textfeld erstellen, mit in Textfeld Eigenschaften wählen Daten Registerkarte

Default value =CurrentUser() 

Aktuelle Sou rce „Auswahltabelle Feldname“

Es wird auf den Namen im Textfeld/Label als auch aktuelle Benutzer-Protokoll anzeigen als speichert den Benutzernamen in das Tabellenfeld

+5

Dies zeigt nicht den aktuellen Benutzernamen; Es gibt den "Namen des aktuellen Benutzers der Datenbank" zurück. Dies ist standardmäßig "Admin", es sei denn, Sie haben eine sicherheitsaktivierte Arbeitsgruppe eingerichtet. – Paul