TempVars. Klein, unscheinbar â aber sehr nĂŒtzlich.
Gerade wenn Du mit Formularen, Makros und Berichten arbeitest, die dieselben Werte brauchen.
Ich zeig Dir hier, was TempVars sind, ab wann Du sie nutzen kannst, und wie Du sie professionell einsetzt â in Formularen, Abfragen und VBA.
Was sind TempVars?
TempVars heiĂen offiziell: Temporary Variables.
Die Idee: Du speicherst einen Wert einmal â und kannst ihn ĂŒberall nutzen.
- In VBA
- In Makros
- In Abfragen (ja, auch in SQL!)
- In Formularen und Berichten
Ein globaler Speicher, der lebt, solange Access lÀuft.
Seit wann gibtâs TempVars?
Seit Access 2007.
Vorher musstest Du mit globalen Variablen oder versteckten Formularfeldern tricksen.
Heute brauchst Du das nicht mehr â TempVars sind stabil und einfach zu nutzen.
Wie setzt Du TempVars?
Wert speichern
TempVars.Add "Benutzerrolle", "Admin"
Oder aktualisieren, wenn der Name schon existiert:
TempVars!Benutzerrolle = "Support"
Wert auslesen
Dim rolle As String
rolle = TempVars!Benutzerrolle
Oder direkt inline:
If TempVars!Benutzerrolle = "Admin" Then
' Zugriff gewÀhren
End If
Wert löschen
TempVars.Remove "Benutzerrolle"
Oder alle auf einmal:
TempVars.RemoveAll
WofĂŒr ich TempVars einsetze
1. Benutzeridentifikation
Beim Start:
TempVars.Add "Benutzername", Environ("USERNAME")
TempVars.Add "Benutzerrolle", ErmittleRolle(TempVars!Benutzername)
SpĂ€ter ĂŒberall verfĂŒgbar â auch in Abfragen oder Formularen.
2. Filter ĂŒbergeben zwischen Formularen
TempVars.Add "KundenID", Me!KundenID
DoCmd.OpenForm "frmKundendetails"
Im Zielformular:
Me.Filter = "KundenID = " & TempVars!KundenID
Me.FilterOn = True
Schnell. Lesbar. Robust.
3. Abfragen mit dynamischem Inhalt
SELECT * FROM tblRechnungen WHERE KundeID = TempVars!KundenID
Das funktioniert direkt in gespeicherten Abfragen.
Keine Formulare oder Funktionen nötig.
Sehr nĂŒtzlich fĂŒr Berichte oder Kombis.
4. Berichte dynamisch filtern
Vor dem Ăffnen:
TempVars.Add "Jahr", 2024
DoCmd.OpenReport "rptUmsatzProJahr", acViewPreview
In der Bericht-Abfrage:
SELECT * FROM qryUmsaetze WHERE Jahr = TempVars!Jahr
Klarer gehtâs kaum.
Vorteile gegenĂŒber Globalen Variablen
TempVars | Globale Variablen |
---|---|
ĂŒberall nutzbar | nur in VBA |
stabiler Scope | können verloren gehen |
auch in SQL nutzbar | nein |
kein Modul nötig | muss deklariert werden |
Kurz: TempVars sind das bessere Global.
Vorsicht: Das solltest Du wissen
- TempVars sind global pro Instanz â mehrere Datenbanken teilen sie sich nicht.
- Access vergisst sie beim SchlieĂen automatisch â kein Cleanup nötig (auĂer Du willst).
- Es gibt keine Typisierung â Du kannst alles reinschieben, aber prĂŒfe beim Auslesen.
If Not IsNull(TempVars!KundenID) Then
Mein Fazit
TempVars sind kein Hexenwerk.
Aber sie sparen Dir viele Umwege â besonders bei rollenbasiertem Zugriff, Filtern, Berichtslogik und Navigation.
Wenn Du sie einmal einsetzt, willst Du sie nicht mehr missen.
Ich verwende sie in jedem gröĂeren Access-Projekt.
No responses yet