Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Windows Benutzerinformationen in Access verarbeiten





Frage

Hallo Ihr, ich möchte gerne in einer Access Datenbank die Windows Benutzerinformationen nutzen können. Und zwar soll es so sein, dass bei Eingabe eines neues Datensatzes in irgendeiner Tabelle ein Feld standardmäßig mit dem Benutzerlogin gefüllt wird. (Der Standardwert soll also das Benutzerlogin beinhalten) Ich hab irgendwie gelesen, dass man über die MODULE die Daten bekommen kann. Aber wie bekomme ich sie letztendlich in die Tabelle....? Für Eure Hilfe bin ich sehr dankbar. MfG Malte Schefer

Antwort 1 von JohnnyLoser

Hi Malte,

also mir fallen auf Anhieb 2 Möglichkeiten ein:

1. Beim Öffnen der Datenbank im AutoExec-Makro über TableDef den DefaultValue des Feldes auf den aktuellen Benutzer setzen, den Du zuvor mit der Funktion CurrentUser() ermittelst.

Finde ich persönlich nicht so schön und in einer Mehrfachumgebung nur äußerst umständlich zu händeln.

2. Ausgehend davon, daß der User die Daten nur über ein Formular eingeben kann, kannst Du im Ereignis BeforeUpdate des Formulars die Zeile

FeldBenutzer = CurrentUser()

einfügen.

"FeldBenutzer" ist der Felname, in dem der Username gespeichert werden soll.

Find ich persönlich schöner.

Gruß

Johnny

Antwort 2 von Malte

Hallo Johnny,

gute Idee, das funktioniert aber nur mit den Benutzerinformationen von Access. Bei mir steht dann immer Admin, obwohl mein Windows Benutzername ein ganz anderer ist. Aber genau diesen Benutzernamen brauche ich!!! Weitere Hilfe???

Antwort 3 von Teddy7

Hallo Malte !
Versuch´s mal so:
-----------------------------------
' einfügen vor der ersten sub
Private Declare Function apiGetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
-----------------------------------
Function BenutzerName() As String

Dim lngLen As Long
Dim lngX As Long
Dim strBenutzerName As String

strBenutzerName = String$(254, 0)
lngLen = 255
lngX = apiGetUserName(strBenutzerName, lngLen)
If lngX <> 0 Then
BenutzerName = Left$(strBenutzerName, lngLen - 1)
Else
BenutzerName = ""
End If

End Function
--------------------------------------
Gruß
Teddy

Antwort 4 von Malte

Super, danke hat problemlos funktioniert. Vielen Dank noch mal und weiter so :-)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: