2009-03-24 3 views

risposta

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)) 

Risulta domanda è stata fatta prima: How can I get the currently logged-in windows user in Access VBA?

+0

Non ho visto che la domanda è stata posta prima. Grazie, comunque, –

+0

Ricorda che 'Dichiara' non è disponibile in Accesso a 64 bit. –

32

provate questo:

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

Tenete a mente che questo può essere cambiato da utenti/applicazioni ... –

+9

Potrebbe non essere sicuro al 100% ogni volta, ma siamo onesti, stiamo parlando di VBA. Io per primo, scelgo il modo più semplice :) – Eric

+1

@Eric +1 qui. Se sei preoccupato, non dovresti usare Access in primo luogo. – Hill

-1

In un modulo, creare una casella di testo, con in Proprietà casella di testo, selezionare i dati scheda

Default value =CurrentUser() 

Current sou RCE "nome del campo di selezione tabella"

Mostrerà registro utente corrente sul nome nella casella di testo/etichetta e salva il nome utente nel campo della tabella

+5

Questo non visualizza il nome dell'utente corrente; restituisce il "nome dell'utente corrente del database". Questo valore predefinito è "Amministratore" a meno che non sia stato stabilito un gruppo di lavoro abilitato alla sicurezza. – Paul