VBA

Moderator: ModerationP

VBA

Beitragvon Reaper28 » 08. Sep 2021, 07:46

Guten Morgen,

Ich würde gerne einen User in einem Formular automatisch in einem Textfeld eintragen lassen.
Dafür würde ich gerne den Benutzernamen von Windows welchen ich über folgende Funktion ermittle verwenden.

Public Function GetUserName() as String
GetUserName = Environ ("Username")
End Function

Das funktioniert auch soweit so gut und es ist auch möglich die Funktion als Standardwert in Textfelder einzufügen, sodass er diese automatisch mit dem Windows Benutzernamen befüllt..
Nur leider funktioniert dies nicht beim Primärschlüssel Feld welches das Besagte User Feld von oben ist.
Gibt es eine Möglichkeit über VBA oder auch über Access den Benutzernamen von Windows welcher in der Tabelle User hinterlegt ist, abzugleichen damit er den Primärschlüssel automatisch ausfüllt.

Vielen Dank im voraus.
Reaper28
 

Re: VBA

Beitragvon Bitsqueezer » 08. Sep 2021, 10:26

Hallo,

"Environ" ist immer eine schlechte Idee, da das nur Variablen aus Windows abruft - die vom Benutzer beliebig verändert werden können.

Besser die Windows API benutzen:
https://docs.microsoft.com/de-de/office ... he-network

Ein PK-Schlüssel muß vor allem eindeutig sein. Beim Windows-Loginnamen ist das bereits durch das Active Directory gegeben, sofern der Rechner in einer solchen Domäne ist.

Der Rest ist unverständlich. Entweder Du hast eine Tabelle, in der der Loginname bereits enthalten ist, die dann auch schon einen (anderen) PK hat oder Du willst eine Usertabelle um den Loginnamen erweitern, der dann aber kein PK sein kann, solange nicht alle Benutzer ihren Loginnamen erhalten haben (wenn die Tabelle z.B. derzeit nur Vor- und Nachname enthält).

Wenn, dann wäre das ein Administrationsjob, die Usertabelle einmalig um den Loginnamen zu ergänzen, dieser müßte dann auch neue Benutzer anlegen. Den Windows-Loginnamen kann man per Code auch aus dem Active Directory auslesen.

Du mußt also schon genauer beschreiben, was Du erreichen willst.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8465
Registriert: 21. Jun 2007, 12:17

Re: VBA

Beitragvon Mr.TM » 08. Sep 2021, 15:11

Wenn ich dich richtig verstanden habe willst du den Windows-User-Name zum Primärschlüssel machen?
Das ist problematisch. Nimm lieber eine ID als Primärschlüssel, dann kannst du den User-Name ohne Probleme in eine der folgenden Spalten eintragen.
OracleDB, Access 365 (deutsch), kein VBA erlaubt
Mr.TM
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 21
Registriert: 20. Aug 2021, 10:14


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Stj68 und 2 Gäste