![]() |
||
![]() |
Auslesen des Benutzernamens von Windows per VBA aus AccessIch 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_CONFIGDamit 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) |
![]() |