Einer für drei: Der Befehl SysCmd

Nüchtern betrachtet hat es den Anschein, als hätte man den SysCmd-Befehl in Access kurz vor Fertigstellung angeflickt, um noch rasch drei völlig unterschiedliche Funktionen unterzubringen. Warum er trotzdem sehr mächtig ist und nicht unterschätzt werden sollte, erfahren Sie in diesem Beitrag.

Zuallererst ist er in der Lage, bestimmte System- Informationen zu liefern, zum Beispiel um welche Access-Version es sich handelt oder ob Access als Runtime gestartet wurde. Listing 1 zeigt, welche Daten abgefragt werden können.

Sub ShowInfo()
Dim strVersion As String
Dim strPfad As String
Dim strSysDatei As String
Dim strProfil As String
Dim strIniDatei As String
Dim booRuntime As Boolean
strVersion = Application.SysCmd(acSysCmdAccessVer)
strPfad = Application.SysCmd(acSysCmdAccessDir)
strSysDatei = Application.SysCmd( _
acSysCmdGetWorkgroupFile)
strProfil = Application.SysCmd(acSysCmdProfile) & ""
strIniDatei = Application.SysCmd(acSysCmdIniFile)
booRuntime = Application.SysCmd(acSysCmdRuntime)
MsgBox "Version: " & strVersion & vbCrLf & _
"Access.exe-Pfad: " & strPfad & vbCrLf & _
"System-Datei: " & strSysDatei & vbCrLf & _
"Profil: " & strProfil & vbCrLf & _
"INI-Datei: " & strIniDatei & vbCrLf & _
"Runtime: " & booRuntime
End Sub

Gegebenenfalls müssen Sie darauf achten, dass die Rückgabewerte auch leer sein können wie beim Profil. Dabei handelt es sich um den Parameter, der beim Access-Start per Kommandozeile hinter "/profile" steht. Damit es keinen Fehler mit Nullwerten gibt, steht direkt dahinter die Verkettung mit einem leeren Text.

Bei der Angabe, ob Access nur als Runtime im Gegensatz zur Vollversion gestartet wurde, handelt es sich als einzigem Wert um eine boolesche Variable, also einen Ja/Nein-Wert.