window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

TempVars unter VBA

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Im Artikel Programmieren mit Makros haben Sie bereits die so genannten temporären Variablen, auch TempVars genannt, kennen gelernt. Im vorliegenden Artikel vertiefen wir dieses Thema und schauen uns vor allem an, wie Sie die TempVars unter VBA nutzen und wie Sie damit die Verbindung zwischen VBA und Makros herstellen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1405_Tempvars.accdb.

Voraussetzungen

TempVars wurden erst mit Access 2007 eingeführt. Dementsprechend können Sie als Nutzer von Access 2003 und älter nicht auf dieses Feature zugreifen.

Temporäre Variablen

Temporäre Variablen sind eigentlich ein Sonderfall des Collection-Objekts.Die Unterschiede sind, dass Sie dieses Objekt nicht erst wie ein Collection-Objekt deklarieren und instanzieren müssen, sondern dass es immer und überall bereitsteht.

Warum nun sollte ich einen Wert in einer temporären Variablen speichern und nicht in einer herkömmlichen Variablen

Dafür gibt es gleich mehrere Gründe:

  • Temporäre Variablen werden im Gegensatz zu herkömmlichen Variablen im Falle eines Laufzeitfehlers nicht gelöscht – ein Beispiel folgt später. Sie werden erst beim Schließen der Access-Datei gelöscht (sofern Sie dies nicht vorher per Makro oder Code erledigt haben).
  • Temporäre Variablen können Sie sowohl von VBA als auch von Makros aus nutzen.

Temporäre Variablen nehmen Variablen des Typs Variant auf, also auch Strings, Zahlen et cetera, aber keine Objekte.

Temporäre Variablen im Makros

Schauen wir kurz auf die Verwendung von temporären Variablen in Makros. Diese legen Sie wie in mit dem Makrobefehl FestlegenTempVar fest (siehe Bild 1). In diesem Fall heißt die Variable AktuelleAusgabe und wird mit dem Wert 5/2014 gefüllt.

Festlegen einer temporären Variablen per Makro

Bild 1: Festlegen einer temporären Variablen per Makro

Das Makro macAktuelleAusgabeAusgeben sieht wie in Bild 2 aus und gibt den Inhalt der temporären Variablen in einem Meldungsfenster aus.

Ausgabe des Inhalts der temporären Variablen

Bild 2: Ausgabe des Inhalts der temporären Variablen

Das Ergebnis ist das Meldungsfenster aus Bild 3. Der Wert des Ausdrucks [TempVar]![AktuelleAusgabe] erscheint als Teil der auszugebenden Zeichenkette. Wichtig: Der Zugriff auf die Elemente der TempVar-Auflistung (die hier unsinnigerweise im Singular anzugeben ist) erfolgt über die Ausrufezeichen-Syntax.

Per Makro angezeigtes Meldungsfenster mit dem Inhalt einer temporären Variablen

Bild 3: Per Makro angezeigtes Meldungsfenster mit dem Inhalt einer temporären Variablen

Temporäre Variable per VBA festlegen

Wenn Sie eine temporäre Variable per VBA festlegen möchten, erledigne Sie dies interessanterweise nicht mit einer der Methoden des DoCmd-Objekts, welches ja fast alle in Makros verwendeten Befehle anbietet.

Stattdessen nutzen Sie direkt die TempVars-Auflistung, in diesem Fall die Add-Methode dieser Auflistung:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar