Datenmakros I: Grundlagen

Eine der interessantesten Neuerungen mit Access 2010 sind die Datenmakros. Damit können Sie sowohl endlich auch die üblichen Bearbeitungen und Zugriffe auf Tabellen durchführen (mit benannten Makros) als auch eine Art Ereignisse für Tabellen definieren, die beim Anlegen, ändern oder Löschen von Daten in Tabellen ausgelöst werden (Datenmakros). Dieser Artikel zeigt, wie Sie Datenmakros und benaanlegen und was es dabei zu beachten gibt.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1403_Daten-makros.mdb.

Einführung

Datenmakros kommen gleich in zwei Ausführungen: Die erste entspricht etwa den Triggern anderer Datenbanksysteme. Trigger werden durch änderungen an den Datensätzen einer Datenbank ausgelöst. Die zweite kann einfache Datenoperationen abbilden, wie Sie sie auch per VBA mit den Elementen der DAO-Bibliothek programmieren können – also etwa das Hinzufügen, ändern oder Löschen eines Datensatzes, aber auch das Auslesen von Feldinhalten eines zuvor ermittelten Datensatzes.

Ereignisse in Tabellen

Die folgenden Ereignisse in Zusammenhang mit der änderung von Datensätzen in Tabellen können Datenmakros auslösen (sofern diese definiert sind):

  • Nach dem Anlegen eines Datensatzes
  • Vor dem ändern eines oder mehrerer Felder eines Datensatzes
  • Nach dem ändern eines Datensatzes
  • Vor dem Löschen eines Datensatzes
  • Nach dem Löschen eines Datensatzes

Das Schöne an Datenmakros ist, dass diese immer ausgelöst werden, wenn die entsprechende änderung erfolgt – egal, wodurch die änderung geschieht.

Es gibt beispielsweise die folgenden Möglichkeiten, eine entsprechende änderung zu bewirken und dadurch ein Datenmakro auszulösen:

  • änderungen direkt in der Datenblattansicht der Tabelle
  • änderungen über die Datenblattansicht einer Abfrage
  • änderungen über die Eingabe in ein Formular
  • änderungen per DAO oder ADO
  • änderungen durch die direkte Ausführung einer Aktionsabfrage über den Navigationsbereich (INSERT INTO, UPDATE, DELETE, SELECT INTO)
  • änderung durch eine Aktionsabfrage, die per DoCmd.RunSQL oser per .Execute ausgelöst wurde

Der Artikel Datenmakros III: Ereignisse liefert einige Beispiele für den Einsatz von Ereignissen in Tabellen.

Benannte Makros

Die benannten Makros legen Sie immer in Zusammenhang mit einer Tabelle an. Diese müssen sich aber nicht auf die aktuelle Tabelle beziehen, sondern Sie können damit auch die Daten anderer Tabellen bearbeiten oder einlesen. Benannte Makros können Sie entweder von Datenmakros aus auslösen oder auch mit der Makroaktion AusführenDatenmakro von einem herkömmlichen Makro aus.

Auch die Ausführung per VBA ist möglich. Dazu rufen Sie einfach die Methode RunDataMacro des DoCmd-Objekts auf – beispielsweise wie folgt:

DoCmd.RunDataMacro "macDatenmakro"

Später erfahren Sie noch ein weiteres Detail hierzu – nämlich zur übergabe von Parametern.

Datenmakros anlegen

Datenmakros werden nicht wie herkömmliche Datenmakros über den Ribbon-Eintrag Erstellen|Makros und Code|Makros erstellt, sondern im Kontext der jeweiligen Tabelle. Dazu wählen Sie in der Entwurfsansicht den Ribbon-Eintrag Entwurf|Feld-, Da-ten-satz- und Ta-bel-len-er-eig-nis-se|Da-ten-makros erstellen und öffnen so eine Liste der verfügbaren Datenmakros sowie die Möglichkeit, ein benanntes Makro zu erstellen (siehe Bild 1).

Datenmakros über den Tabellenentwurf erstellen

Bild 1: Datenmakros über den Tabellenentwurf erstellen

Später werden Sie an dieser Stelle die Möglichkeit erhalten, bereits erstellte Datenmakros und benannte Makros zu bearbeiten.

Mit den neueren Access-Versionen (ab Version 2007) können Sie Tabellen auch in der Datenblattansicht bearbeiten. Das gilt auch für das Anlegen und Bearbeiten von Datenmakros und benannten Makros. Wenn Sie die Ansicht der Tabelle zur Datenblattansicht wechseln, finden Sie im Ribbon unter dem Tab Tabelle alle notwendigen Befehle direkt in der übersicht vor (siehe Bild 2).

Datenmakros und benannte Makros direkt zur Datenblattansicht hinzfuügen

Bild 2: Datenmakros und benannte Makros direkt zur Datenblattansicht hinzfuügen

Hier werden die Makros sogar noch in zwei Ribbon-Gruppen unterteilt, nämlich in Vorabereignisse (Vor änderung und Vor Löschung) und Nachfolgeereignisse (Nach Einfügung, Nach Aktualisierung und Nach Löschung).

Einfache Protokollierung

Wählen Sie hier den Eintrag Nach Einfügung, zeigt Access ein neues, leeres Makro an, das nach dem Einfügen eines neuen Datensatzes ausgeführt wird. In diesem Fall wollen wir noch keine änderung am Feld AngelegtAm vornehmen, sondern ein sehr schönes Feature der Datenmakros nutzen: Es gibt nämlich eine Tabelle namens USysApplicationLog, mit der Sie Informationen aus Makros heraus speichern können, und zwar auf einfachste Weise.

Dazu klicken Sie in der Datenblattansicht auf den Ribbon-Eintrag Tabelle|Nachfolgeereignisse|Nach Einfügung. Es erscheint ein neues, leeres Makro, dem Sie den Befehl ProtokollierenEreignis hinzufügen. Dieses erwartet als Parameter lediglich den Text des zu protokollierenden Ereignisses, in diesem Fall den folgenden (siehe Bild 3):

Tabellen-Ereignisse per Makro protokollieren

Bild 3: Tabellen-Ereignisse per Makro protokollieren

="Datensatz mit der ID '" & [tblBeispieleFuerProtokollierung].[BeispielID] & "' in der Tabelle 'tblBeispieleFuerProtokollierung' angelegt. Zeit: " & Jetzt()

Darin stecken gleich mehrere Informationen, nämlich der Primärschlüsselwert des neu hinzugefügten Datensatzes und die aktuelle Zeit mit Datum (Jetzt()).

Wenn Sie das Makro speichern und schließen, können Sie es gleich ausprobieren. Dazu müssen Sie lediglich einen neuen Datensatz zur Tabelle hinzufügen. Aber was geschieht nun Zunächst einmal nichts Sichtbares.

Erst wenn Sie zufällig zum Backstage-Bereich von Access 2010 und neuer wechseln, finden Sie einen passenden Hinweis: über den üblichen Schaltflächen etwa zum Komprimieren und Reparieren der aktuellen Datenbank finden Sie dort nämlich jetzt eine Schaltfläche mit der Beschriftung Anwendungsprotokolltabelle anzeigen (siehe Bild 4).

Der Backstage-Bereich liefert einen Hinweis auf die Anwendungsprotokolltabelle

Bild 4: Der Backstage-Bereich liefert einen Hinweis auf die Anwendungsprotokolltabelle

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar