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

TempVarsGlobale Variablen
ĂŒberall nutzbarnur in VBA
stabiler Scopekönnen verloren gehen
auch in SQL nutzbarnein
kein Modul nötigmuss 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.

Categories:

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert