Restituire come valore predifinito il nome utente loggato in windows

Anonimo
2020-05-18T22:12:57+00:00

Buonasera a tutti, sto utilizzando da poco Access ma già sono riuscito a creare un buon programmino imprando un po qua e la su internet.

Ho una maschera in cui faccio gli inserimenti dei dati che mi interessano i quali a loro volta andranno ad alimentare il database principale. Vorrei fare in modo che nella maschera inserimenti, nella casella di testo "dipendente" invece di dover far scrivere al dipendente il proprio nome vorrei che il campo si compilasse automaticamente con il nome dell'utente che si è loggato su Windows. ho visto un po su internet ma non sono riuscito nell'intento, spero in una buona anima pia che mi spieghi per bene come posso risolvere questa mia questione. grazie mille a tutti

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

7 risposte

Ordina per: Più utili
  1. Anonimo
    2020-05-21T18:16:08+00:00

    Buona sera. Allora per quanto riguarda la prima soluzione ho fatto in questo modo

    Ho aperto la maschera dove c'è il mio campo "casella di testo" - che ha come nome "dipendente". Da qui ho aperto visual basic e ho inserito nel codice questo:

    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

    poi sono andato di nuovo sulla maschera e selezionando la casella di testo che mi interessa ho messo come evento "prima di aggiornare" : =me.dipendente=fOSUserName()

    Ho fatto in questo modo, ma andando ad aprire la maschera la casella di testo risulta sempre vuota

    Per quanto riguarda il secondo metodo, già avevo provato ma mi da sempre il problema che esce come risultato la stringa #Nome?. In particolare vado ad inserire nel campo Dati>Valore predifinito Environ("UserName") ma mi da questo errore. 

    Spero possiate farmi capire cosa e dove sbaglio. Grazie mille e buona serata

    La risposta è stata utile?

    0 commenti Nessun commento
  2. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2020-05-20T10:13:48+00:00

    Ciao,

    Penso che per un principiante convenga provare:

    Environ("UserName")

    Ciao Mimmo.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-05-19T18:49:50+00:00

    ciao Massimo, 

    copia in un modulo standard la funzione fOSUserName e la relativa dichiarazione APi apiGetUserName  in un modulo standard.

    assegni sull'evento che hai deciso di scatenare il valore della textBox che mostrerà il nome dell'utente loggato richiamando la funzione fOSUserName.

    me.tuatextBox=fOSUserName().

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-05-19T10:23:51+00:00

    ciao, grazie per la risposta. Se non ti disturbo potresti spiegarmi passo passo come fare? Grazie mille

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2020-05-19T07:58:01+00:00

    ciao Massimo,

    prova ad applicare le funzione APi che trovi in questo link :

    https://answers.microsoft.com/it-it/msoffice/forum/all/api-a-32-bit-in-un-database-a-64bit/028c26ec-7d31-4385-8538-854b39735112

    Tralascerei l'uso delle varibiali di ambiente attraverso la funzione nativa Environ.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento