VBA Tipp: Windows Umgebungsvariablen und spezielle Verzeichnisse

Aus DBWiki
Wechseln zu: Navigation, Suche

Anforderung

Ich möchte die tatsächlichen Pfade für spezielle Verzeichnisse wie "Aktuelle Datenbank" oder "Programme" oder "Eigene Dokumente" ermitteln.

Windows Umgebungsvariablen und Spezialordner Access-interne Funktion Windows Scripting Host (WSH),
API-Funktion
Dateiname der aktuellen Datenbank CurrentProject.Name
oder Dir(CurrentDb.Name)
Ordner der aktuellen Datenbank CurrentProject.Path
Pfad zur aktuellen Datenbank CurrentProject.FullName
oder CurrentDb.Name
Benutzername (Access) CurrentUser
Ordner der msaccess.exe SysCmd(acSysCmdAccessDir)
Access-Versionsnummer SysCmd(acSysCmdAccessVer)
oder Application.Version
Pfad zur Access-Arbeitsgruppendatei SysCmd(acSysCmdGetWorkgroupFile)
Ist es eine Runtime-Version? SysCmd(acSysCmdRuntime)
Ordner ProgramData Environ("ALLUSERSPROFILE")
Ordner Benutzer\AppData\Roaming Environ("APPDATA")
Ordner Program Files (x86)\Common Files Environ("CommonProgramFiles")
Ordner Program Files (x86)\Common Files Environ("CommonProgramFiles(x86)")
Ordner Program Files\Common Files Environ("CommonProgramW6432")
Computername Environ("COMPUTERNAME") API-Funktion: GetComputerName
Ordner Benutzer Environ("HOMEPATH")
Ordner Benutzer\AppData\Local Environ("LOCALAPPDATA")
Ordner ProgramData Environ("ProgramData")
Ordner Programme (x86) Environ("ProgramFiles")
Ordner Programme (x86) Environ("ProgramFiles(x86)")
Ordner Programme Environ("ProgramW6432")
Ordner Users\Public Environ("PUBLIC")
Ordner Windows Environ("SystemRoot")
oder Environ("windir")
API-Funktion: GetWindowsDirectory
Ordner Windows\System32 API-Funktion: GetSystemDirectory
Ordner Windows\System32\cmd.exe Environ("ComSpec")
Ordner AppData\Local\Temp Environ("TEMP")
Ordner AppData\Local\Temp Environ("TMP")
Benutzername (Windows) Environ("USERNAME") API-Funktion: GetUserName
Benutzerdomain Environ("USERDOMAIN")
Ordner Benutzer Environ("USERPROFILE")
Ordner Desktop Alle Benutzer WSH-SpecialFolders: AllUsersDesktop
Ordner Startmenü Alle Benutzer WSH-SpecialFolders: AllUsersStartMenu
Ordner Programme Alle Benutzer WSH-SpecialFolders: AllUsersPrograms
Ordner Autostart Alle Benutzer WSH-SpecialFolders: AllUsersStartup
Ordner Desktop WSH-SpecialFolders: Desktop
Ordner Favoriten WSH-SpecialFolders: Favorites
Ordner Schriftarten WSH-SpecialFolders: Fonts
Ordner Eigene Dokumente WSH-SpecialFolders: MyDocuments
Ordner Network Shortcuts WSH-SpecialFolders: NetHood
Ordner Printer Shortcuts WSH-SpecialFolders: PrintHood
Ordner Programme Benutzer WSH-SpecialFolders: Programs
Ordner Zuletzt verwendet WSH-SpecialFolders: Recent
Ordner Senden an WSH-SpecialFolders: SendTo
Ordner Startmenü Benutzer WSH-SpecialFolders: StartMenu
Ordner Autostart Benutzer WSH-SpecialFolders: Startup
Ordner Templates WSH-SpecialFolders: Templates


Wiki hinweis.png Anmerkung: Umgebungsvariablen (z.B. der Windows-Benutzername) lassen sich über Konsolenbefehle oder über Visual-Basic-Scripts temporär manipulieren / überschreiben. Falls solche mutwilligen Manipulationen seitens des Benutzers zu befürchten sind, müssen alternativ entsprechende API-Funktionen zum Auslesen der Werte verwendet werden.


Aufruf

  • Beispiele für den Aufruf der Environ-Funktion:
'Pfad zum Ordner "Programme (X86)" anzeigen
MsgBox Environ("ProgramFiles")
 
'Windows-Benutzernamen anzeigen
MsgBox Environ("USERNAME")
  • Beispiel für Windows Scripting Host-Spezialordner (WSH-SpecialFolders):
Dim WSH As Object 'Windows Scripting Host
Set WSH = CreateObject("WScript.Shell")
 
'Pfad zum Ordner "Eigene Dokumente" anzeigen
MsgBox WSH.SpecialFolders("MyDocuments")


Wiki-Links


Web-Links