Auslesen des Benutzernamens von Windows per VBA aus Access

Ich möchte mit Access die aktuellen Anmeldenamen von Windows 98 und NT verwenden, um benutzerspezifische Fähigkeiten in der Datenbank einzurichten, die sich nicht auf den Anmeldenamen unter Access beziehen. Wissen Sie, wie man den Benutzernamen mit VBA ausliest?

Dazu greifen Sie auf die Informationen in der Registry zu, wofür unter Windows 98 und NT der Windows Scripting Host zuständig ist. Er ersetzt die Batch-Programmierung aus DOS-Tagen durch Visual Basic Script. Auch für die Programmierung von Access stellt der Scripting Host Funktionen für den Zugriff auf die Registry zur Verfügung. Achten Sie bei NT 4 darauf, daß Sie den Scripting Host im Zuge des »Option Pack« auch installiert haben. Erst ab Version 5 bringt NT das Tool automatisch mit. Herunterladen läßt es sich bei Microsoft unter »http://msdn.microsoft.com/ scripting«.

Um die Registry mit VBA unter Access zu bearbeiten, brauchen Sie das »Shell«-Objekt. Die Methode »RegRead« liest einen Wert aus der Registry aus. Ihr wird als Zeichenkette der Pfad in der Registry übergeben. Die Zeichenkette muß mit folgenden Root-Schlüsseln anfangen:

HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG
Damit Access auf den Scripting Host zugreifen kann, legen Sie zunächst das »Shell«-Objekt mit »CreateObject("WScript.Shell")« an. Zuletzt rufen Sie die Methode »RegRead("")« mit dem jeweiligen Registry-Schlüssel auf. Ein Beispiel finden Sie in der Datei »BENUTZER.MDB« auf der Heft-CD.
Listing »Benutzer«

Dim WshShell As Object

Dim strUser As String

Set WshShell = CreateObject ("WScript.Shell")

strUser = WshShell.RegRead ("HKLM\ System\ CurrentControlSet\Control\ CurrentUser")

Debug.Print (strUser)