|
Häufig verwenden Sie in Ihren
Datenbank-Projekten globale Variablen, um Informationen festzuhalten,
auf die Sie in der gesamten Datenbank zugreifen möchten. Wenn Sie das
per VBA tun, klappt das auch wunderbar. Versuchen Sie allerdings, die
Variable in einer Abfrage oder in einem Ausdruck einzusetzen, gibt
Access eine Fehlermeldung aus oder liefert falsche Ergebnisse. Das
liegt daran, dass Access den Variablennamen entweder als Text oder als
Feldnamen interpretiert. Ein Zugriff auf globale Variablen ist nicht möglich.
Sie können das Problem umgehen, indem Sie in einem beliebigen Modul
eine Funktion einsetzen, die den Inhalt der betreffenden Variablen als
Ergebnis liefert. Diese Funktion können Sie dann in Abfragen oder
Ausdrücken einsetzen. Zum Beispiel: Sie haben eine Datenbank
erstellt, die in verschiedenen Ländern eingesetzt wird. In einer
globalen Variablen "EinsatzLand" halten Sie fest, in welchem
Land die jeweils installierte Datenbank zum Einsatz kommt. Die
Variable enthält also "Schweiz", "USA" oder ähnlich.
In Abfragen möchten Sie zum Beispiel nur Kunden oder Lieferanten aus
diesen Ländern selektieren. In einem Modul haben Sie die betreffende
Variable über "Global EinsatzLand As String" deklariert. In
diesem Modul legen Sie die folgende Funktion an:
Function AktuellesLand () As
String
AktuellesLand = EinsatzLand
End Function
Beim Aufruf der Funktion wird einfach der Inhalt
der globalen Variablen "EinsatzLand" als Funktionsergebnis
gesetzt. Diesen Mechanismus können Sie beispielsweise in einem
Formular einsetzen, um alle Kunden des aktuellen Landes zu Infozwecken
anzuzeigen:
- Legen Sie eine Abfrage "Kunden/Aktuelles
Land" an, die die betreffenden Kunden selektiert und fügen
das Feld Land in einer zweiten Spalte hinzu. Als Kriterium
verwenden Sie:
=AktuellesLand()
- Auf diese Weise werden nur die Datensätze
selektiert, bei denen das Land mit dem Eintrag übereinstimmt, den
die Funktion "AktuellesLand()" als Ergebnis liefert.
- Im Formular legen Sie eine Schaltfläche
"Kunden aktuelles Land" an, der Sie in der
Ereignisprozedur "Beim Klicken" folgende Anweisung
zuordnen:
Sub
btnKundenAktuell_Click ()
DoCmd.OpenQuery "Kunden/Aktuelles Land"
End Sub
Beim Klicken auf diese Schaltfläche wird die Abfrage geöffnet und
zeigt nur die Kunden für das betreffende Land an, das Sie in der
globalen Variablen "EinsatzLand" gesetzt haben. Diese
Initialisierung nehmen Sie zum Beispiel beim Laden des Formulars vor:
Sub Form_Load ()
EinsatzLand = "Schweiz"
End Sub
|