Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Umgebungsvariablen setzen und lesen per VBA

Umgebungsvariablen 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.

Beispieldatenbank

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

 

Umgebungsvariablen per API schreiben

Fü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 lesen

Das 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 Funktionen

Der 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")

© 2003-2010 André Minhorst Alle Rechte vorbehalten.