Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Problemkind am März 25, 2020, 14:25:45

Titel: Benutzerkennung übernehmen / übertragen
Beitrag von: Problemkind am März 25, 2020, 14:25:45
Hallo und Moin,

ich möchte die Benutzerkennung der Windows-Anmeldung (7-stellige Zahl) auslesen und die eine Tabelle übertragen.
Damit möchte ich dokumentieren, wer einen Datensatz erstellt hat, oder ihn zu letzt geändert hat.

Auslesen kann ich die Kennung mit:
Private Sub btnEnviron_Click()
    Dim sEnvironUser As String
    sEnvironUser = Environ("USERNAME")
    MsgBox "Environment Username=" & sEnvironUser
End Sub

Für mich wichtig: sEnvironUser
Die MsgBox liefert mir das richtige Ergebnis (für mich: 4056521). Anstelle der Ausgabe in eine MsgBox möchte ich halt die Übertragung der Benutzerkennung in die Tabelle (Bestand), in das Feld (BenutzerAenderung).

Ich vermute das die Eintragung der Benutzerkennung über das entsprechende Formularfeld, über ein Ereignis (nach Änderung oder nach Aktualisierung) erfolgen könnte.

Hat jemand einen Tipp oder Lösungsweg für mich und kann ihn mir leicht verständlich beschreiben.

Bye the way: Ich nutze Access 2016, verbunden über ein Citrix-Netzwerk

Danke im Voraus.....
Titel: Re: Benutzerkennung übernehmen / übertragen
Beitrag von: DF6GL am März 25, 2020, 15:40:25
Hallo,


quick and dirty..

In einem Standardmodul:
Public Function fktGetUserName ()
fktGetUsername = Environ("USERNAME")
End Sub


und im BeforeUpdate-Ereignis des Forms:


Sub BeforeUpdate(Cancel as Integer)
Me!BenutzerAenderung = fktGetUserName ()
End Sub
Titel: Re: Benutzerkennung übernehmen / übertragen
Beitrag von: Problemkind am März 26, 2020, 07:52:19
Hallo,
danke für die schnelle Antwort, hatte leider erst heute morgen Zeit sie umzusetzen (bzw. es zu versuchen)...

Zitat von: DF6GL am März 25, 2020, 15:40:25

In einem Standardmodul:
Public Function fktGetUserName ()
fktGetUsername = Environ("USERNAME")
End Sub



ändern auf...
End Function
?

Leider bekomme ich im Feld "BenutzerAenderung" angezeigt: #Name?

Ich hoffe, dass ich alles richtig gemacht hatte:
1. "Public Function fktGetUserName ()" in einem Modul erstellt und unter "Modul1" (hab auch: fktGetUserName () versucht) gespeichert.
2. Für das Feld "BenutzerAenderung" unter Ereignis: "Vor Aktualisierung" das "Sub BeforeUpdate(Cancel as Integer)" als Ereignisprozedur eingefügt und auch dort den Namen der Function angepasst.

Wenn ich jetzt einen neuen Datensatz anlegen will, erscheint: #Name?
Wenn ich einen vorhandenen Datensatz ändere, bleibt das Feld "BenutzerAenderung" leer bzw. die (per Hand) eingetragene Benutzerkennung ändert sich nicht.

Wo steckt der Fehlerteufel?
Noch einen Tipp für mich?

Danke und Gruß aus dem hohen Norden... Bleibt gesund
Frank
Titel: Re: Benutzerkennung übernehmen / übertragen
Beitrag von: DF6GL am März 26, 2020, 08:50:49
Hallo,

ja, muss natürlich End Function heißen.

1) das Modul darf nicht so wie die Funktion heißen. Belass es bei "Modul1".

2) An was angepasst?  der Funktionsname ändert sich nicht, bzw. heißt überall gleich.

Es muss das Form-Ereignis "Vor Aktualisierung" sein.  Habe das unterschlagen  :o


In dieser Form_Eigenschaft muss
Zitat[Ereignisprozedur]
stehen, nicht die Funktion selber.



Und der Funktionscode heißt so:
Zitat
Private Sub Form_BeforeUpdate(Cancel as Integer)
Me!BenutzerAenderung = fktGetUserName ()
End Sub
Titel: Re: Benutzerkennung übernehmen / übertragen
Beitrag von: Problemkind am März 26, 2020, 09:42:11
Danke,

funktioniert perfekt.