Umgebungsvariablen setzen und lesen per VBAUmgebungsvariablen setzt man in der Regel über die Kommandozeile oder über den entsprechenden Dialog der Systemsteuerung. Der automatisierungswütige Access-Entwickler findet aber auch bestimmt einen Anlass, diese Aufgabe per VBA erledigen zu wollen. Wie das funktioniert, wird nachfolgend erläutert.

BeispieldatenbankDie nachfolgend erläuterten Quellcode finden Sie im Modul mdlSetGetVar der Beispieldatenbank AccessSQLDotNet.mdb.

Umgebungsvariablen per API schreibenFür beide Vorgänge, das Lesen und das Schreiben, sind API-Anweisungen erforderlich. Diese beiden deklarieren Sie wie folgt:
Private Declare Function GetEnvironmentVariable _
Lib "kernel32.dll" _
Alias "GetEnvironmentVariableA" ( _
ByVal lpName As String, _
ByVal lpBuffer As String, _
ByVal nSize As Long _
) As Long
Private Declare Function SetEnvironmentVariable _
Lib "kernel32.dll" _
Alias "SetEnvironmentVariableA" ( _
ByVal lpName As String, _
ByVal lpValue As String _
) As Long
Das Setzen einer Umgebungsvariablen ist verhältnismäßig einfach:
Public Sub SetVar(strName As String, strValue As String)
Call SetEnvironmentVariable(strName, strValue)
End Sub
Die Funktion dient eigentlich nur als Wrapper der API-Funktion, um einen leichter handzuhabenden Namen zu verwenden. Umgebungsvariablen per API lesenDas Lesen von Umgebungsvariablen ist etwas aufwendiger:
Public Function GetVar(strName As String)
Dim strBuffer As String
Dim lngLen As Long
lngLen = 256
strBuffer = String$(lngLen, Chr$(0))
lngLen = GetEnvironmentVariable(strName, strBuffer, lngLen)
If lngLen <> 0 Then
strBuffer = Left(strBuffer, lngLen)
GetVar = strBuffer
End If
End Function Anwenden der FunktionenDer Aufruf der Funktion SetVar lautet beispielsweise folgendermaßen:
SetVar "Beispielvariable", "Beispielwert"
Wenn Sie diese Anweisung im Testfenster ausgeführt haben, sollte die folgende Anweisung den Wert wieder ausgeben:
? GetVar("Beispielvariable") |