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

Datenmakros III: Ereignisse

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

Mit der Einführung von Datenmakros mit in Access 2010 bietet sich nun auch für Access-Benutzer die Möglichkeit, über eine Art Trigger Aktionen auszuführen, die in Zusammenhang mit dem Anlegen, ändern oder Löschen von Datensätzen stehen. Dieser Artikel stellt die verschiedenen Ereignisse vor und zeigt, wie Sie diese programmieren.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1406_Makros.accdb.

Datenereignisse

Access bietet seit Access 2010 die folgenden Tabellenereignisse an:

  • Vor änderung
  • Vor Löschung
  • Nach Einfügung
  • Nach Aktualisierung
  • Nach Löschung

Wir schauen uns in den folgenden Abschnitten einfache Beispiele für diese Ereignisse an und zeigen Ihnen, welche Besonderheiten diese jeweils aufweisen. Die Ereignisse können Sie auf zwei verschiedenen Wegen festlegen:

  • über die Ribbon-Einträge unter Tabelle|Vorabereignisse und Tabelle|Nachfolgeereignisse der Datenblattansicht der Tabelle (siehe Bild 2) und
  • Schaltflächen zum Hinzufügen von Tabellenereignissen in der Datenblattansicht

    Bild 1: Schaltflächen zum Hinzufügen von Tabellenereignissen in der Datenblattansicht

  • über die Ribbon-Einträge unter Entwurf|Feld-, Datensatz- und Ta-bel-len-er-eig-nisse|Da-ten-makros er-stellen der Entwurfsansicht einer Tabelle (siehe Bild 3).
  • Schaltflächen zum Hinzufügen von Tabellenereignissen in der Entwurfsansicht

    Bild 2: Schaltflächen zum Hinzufügen von Tabellenereignissen in der Entwurfsansicht

Die Beispieldatenbank enthält eine einfache Tabelle namens tblKunden, die wie in Bild 1 aussieht. An dieser Tabelle demonstrieren wir die nachfolgenden Beispiele.

Tabelle zum Darstellen der Möglichkeiten von Tabellenereignissen

Bild 3: Tabelle zum Darstellen der Möglichkeiten von Tabellenereignissen

Mögliche Makrobefehle

Je nachdem, welches Datenmakro Sie verwenden, stehen Ihnen unterschiedliche Makrobefehle zur Verfügung.

Einen sehr eingeschränkten Vorrat an Makrobefehlen finden Sie für die beiden Datenmakros Vor änderung und Vor Löschung vor:

  • Gruppieren: Fasst mehrere Befehle zu einer Gruppe zusammen.
  • Kommentar: Erlaubt die Eingabe eines Kommentars.
  • Wenn: Bedingungsblock
  • AuslösenFehler: Löst einen Fehler aus, der allerdings nur in der Protokolltabelle landet.
  • BeiFehler: Aktiviert die Fehlerbehandlung.
  • FestlegenFeld (nur in Vor änderung, nicht in Vor Löschung): Legt den Wert eines Feldes der aktuellen Tabelle fest, die das Datenmakro ausgelöst hat. In den übrigen Tabellenereignissen nur über DatensatzBearbeiten und DatensatzErstellen verfügbar.
  • FestlegenLokaleVar: Legt eine lokale Variable fest.
  • LöschenMakroFehler: Setzt das MakroError-Objekt zurück.
  • NachschlagenDatensatz: Wie DLookup.
  • StoppMakro: Beendet das Makro.

Für die drei Datenmakros Nach Einfügung, Nach Aktualisierung und Nach Löschung stehen noch einige weitere Makrobefehle zur Verfügung:

  • AusführenDatenmakro: Ruft ein weiteres Datenmakro auf.
  • BeendenFürJedenDatensatz: Beendet eine FürJedenDatensatz-Schleife.
  • DatensatzBearbeiten: Bearbeitet einen Datensatz. Darin Zuweisung der Werte mit FestlegenFeld.
  • DatensatzErstellen: Erstellt einen neuen Datensatz. Darin Zuweisung der Werte mit FestlegenFeld.
  • DatensatzLöschen: Löscht einen Datensatz.
  • FürJedenDatensatz: Wie Do While Not rst.EOF-Schleife.
  • ProtokollierenEreignis: Trägt ein Ereignis in die Tabelle USysApplicationLog ein.
  • SendenEMail: Sendet eine E-Mail.
  • StoppAlleMakros: Beendet alle Makros, auch diejenigen, die das aktuelle Makro aufgerufen haben.

In den drei Makros Nach Einfügung, Nach Aktualisierung und Nach Löschung gibt es keinen direkten Zugriff auf den Makrobefehl FestlegenFeld.

Kein Wunder: Dieser steht im Datenmakro Vor änderung auch nur bereit, weil er sich auf die Felder der aktuellen Tabelle bezieht.

Aus einem anderen Grund fehlt der Befehl im Datenmakro Vor Löschung komplett: Es würde ja keinen Sinn machen, einen Feldwert vor dem Löschen noch zu ändern.

Spezielle Tabellen, Felder und Funktionen

Wenn Sie Werte in die Eigenschaften der Makroaktionen eintragen wollen und den ersten Buchstaben eintippen, erhalten Sie gleich per IntelliSense alle möglichen Vorschläge.

Noch besser gelingt dies, wenn Sie innerhalb eines Eigenschaftsfeldes die Tastenkombination Strg + Leertaste betätigen. Der Makroeditor zeigt dann direkt alle zur Verfügung stehenden Elemente an (siehe Bild 4).

Auswahl der Elemente per IntelliSense

Bild 4: Auswahl der Elemente per IntelliSense

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