Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Benutzerkennung übernehmen / übertragen

Begonnen von Problemkind, März 25, 2020, 14:25:45

⏪ vorheriges - nächstes ⏩

Problemkind

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

DF6GL

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

Problemkind

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

DF6GL

#3
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

Problemkind