Home > Artikel > Ausgabe 2/2014 > Programmieren mit Makros, Teil I

Programmieren mit Makros, Teil I

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Makros sind eine Möglichkeit, einfache Vorgänge unter Access zu automatisieren. Sie sind zwar erheblich unflexibler als etwa VBA-Code, haben aber dennoch ihre Berechtigung – zum Beispiel in Form zweier Spezialmakros namens AutoExec und AutoKeys, die beim Start beziehungsweise beim Ausführen von Tastenkombination aufgerufen werden können. Da Microsoft mit Access 2010 die Webdatenbanken eingeführt hat, die ausschließlich mit Makros programmiert werden können, wollen wir an dieser Stelle eine Einführung in die Programmierung mit Makros bieten.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1402_Makros.mdb.

Makros und VBA

Makros und VBA eignen sich beide zur Programmierung von Ereignissen in Access. In Abgrenzung zu anderen Office-Anwendungen wie Word, Excel und Co. müssen wir hier jedoch eine kurze Begriffsklärung vornehmen: Bei den übrigen Office-Anwendungen spricht man in Zusammenhang mit einer VBA-Prozedur von einem Makro. Dort lassen sich fast alle Aktionen als Makro aufzeichnen, was aber bedeutet, dass die Office-Anwendung eine VBA-Prozedur erstellt, welche die in der Anwendung durchgeführten Tätigkeiten in Form von VBA-Anweisungen enthält.

Ein solches Word- oder Excel-Makro ist nicht mit einem Makro in Access zu vergleichen. Unter Access spricht man unter VBA zum Beispiel von Prozeduren oder Funktionen, gegebenenfalls auch von Routinen, aber niemals von Makros.

Ein Makro ist unter Access ein eigener Objekttyp, dessen Vertreter im Navigationsbereich eine eigene Kategorie besitzen. Die Anweisungen eines Makros werden nicht in Form von Codezeilen eingegeben, sondern als Makrobefehle eingegeben beziehungsweise ausgewählt.

Spezialmakros

Die einzigen beiden Fälle, in denen wir bislang auf die Programmierung von Makros eingegangen sind, finden Sie in den Artikeln Aktion beim Start: Das AutoExec-Makro und AutoKeys: Globale Tastenkombinationen. Das AutoExec-Makro wird direkt beim Start von Access ausgeführt.

Sie können damit also Aktionen auslösen, die in Zusammenhang mit dem Start ausgeführt werden sollen, also etwa das Neuverknüpfen mit einer Backend-Datenbank et cetera. Mit dem AutoKeys-Makro definieren Sie Tastenkombinationen, die global, also anwendungsweit, gültig sind.

Wenn Sie also etwa verhindern möchten, dass der Benutzer mit der Tastenkombination Strg + G das Direktfenster öffnet, können Sie diese Tastenkombination im AutoKeys-Makro entsprechend umbiegen. Im Gegensatz zu den Tastenkombinationen, die Sie in Formularen mit Ereignissen wie Bei Taste ab oder Bei Taste auf abfangen können, werden die mit dem AutoKeys-Makro definierten Tastenkombinationen zu jedem Zeitpunkt ausgelöst und nicht nur dann, wenn ein bestimmtes Formular den Fokus besitzt.

Makros ab Access 2007

Mit Access 2007 hat Microsoft begonnen, die Möglichkeiten der Makros aufzuwerten. Wenn Sie bereits früher mit Makros programmiert haben, sind die folgenden Hinweise für Sie interessant – aber auch für alle anderen:

  • Makros können nicht nur gespeichert und als Wert von Ereigniseigenschaften angegeben werden. Sie können Makros auch in die Ereignisse von Formularen, Berichten und Steuerelementen einbetten. Das Makro wird dann nicht mehr als eigener Eintrag in der Kategorie Makros des Navigationsbereichs angezeigt, sondern direkt im Formular oder im Bericht gespeichert.
  • Der VBA-Code und bestimmte Makrobefehle werden in Access-Datenbanken nicht ausgeführt, wenn diese nicht als vertrauenswürdig eingestuft sind. Sie können im Makro-Editor nun angeben, dass nur solche Makros angezeigt werden, die auch bei nicht vertrauenswürdigen Datenbanken ausgeführt werden können.
  • Mit Access 2007 gibt es erstmals eine Fehlerbehandlung und die Möglichkeit, Makros zu debuggen. Makroaktionen wie BeiFehler oder ClearMacroError helfen dabei ebenso wie MakroEinzelschritt, mit der Sie innerhalb des Makros (ähnlich einer Haltemarke) in den Einzelschrittmodus wechseln können.
  • Bis Access 2003 konnten Makros weder auf Variablen zugreifen noch solche mit Werten füllen. Mit Access 2007 wurden die sogenannten Temporären Variablen eingeführt. Diesen können Sie Werte zuweisen und diese auch wieder abfragen. Interessant ist, dass es auch in VBA ein entsprechendes Objekt gibt, sodass ein Austausch zwischen VBA-Routinen und Makros erfolgen kann.

Makros in Access 2010

Mit Access 2010 geht der Reigen der Neuerungen im Bereich der Makros weiter:

  • Die wichtigste Neuerung ist der neue Makro-Editor. Er liefert eine wesentlich bessere Benutzeroberfläche zum Erstellen von Makros, hier vor allem bei der Umsetzung von Bedingungen und Verschachtelungen.
  • Makroaktionen können Sie direkt aus der Liste im Bereich der zum Makro hinzugefügten Befehle auswählen (siehe Bild 1).
  • Auswählen einer Makroaktion direkt im Makro-Editor ...

    Bild 1: Auswählen einer Makroaktion direkt im Makro-Editor ...

  • Es gibt aber auch einen übersichtlichen Katalog, in dem die Makros nach Kategorien sortiert sind (siehe Bild 2).
  • ... oder aus dem Aktionskatalog.

    Bild 2: ... oder aus dem Aktionskatalog.

  • Zusätzlich können Sie in Makros nun auch IntelliSense nutzen. Damit greifen Sie beispielsweise auf alle eingebauten Access-Funktionen zu, aber auch auf benutzerdefinierte VBA-Funktionen zu. Außerdem stehen die Objektnamen etwa von Tabellen, Abfrage, Formularen et cetera zur Auswahl (siehe Bild 3).
  • IntelliSense im Makro-Editor von Access 2010

    Bild 3: IntelliSense im Makro-Editor von Access 2010

  • Es gibt eine Wenn-Bedingung (mit Sonst- und Sonst Wenn-Zweigen), die auch verschachtelt angeordnet werden können.
  • Sie können bereits erstellte Makros ganz einfach als Untermakros zu weiteren Makros hinzufügen. Diese werden im Aktionskatalog in der Kategorie In diesen Datenbank|Makros eingeblendet.
  • Sie können Teile des Makrocodes kopieren und an anderer Stelle wieder einfügen. Das dabei verwendete Format ist XML. Sie können ein Makro also auch kopieren und per E-Mail an einen anderen Entwickler versenden.
  • Eine weitere wichtige Neuerung sind die Datenmakros, die ähnlich etwa wie die Trigger im SQL Server arbeiten. Diese Makros werden Tabellen zugeordnet und bei bestimmten Datenaktionen ausgelöst – wie etwa das Anlegen eines neuen oder das Ändern oder Löschen eines bestehenden Datensatzes.

Makros in Access 2013

Unter Access 2013 gab es keine nennenswerten Neuerungen. Anscheinend sind sogar drei Makrobefehle weggefallen (mehr zu den verschiedenen Makro-Befehlen weiter unten):

  • SammelnDatenÜberEmail
  • StartenNeuerWorkflow
  • WorkflowAufgaben

Verschiedene Makro-Arten

Unter Access gibt es die folgenden Makro-Arten:

  • normale Makros, die über den Menübefehl Erstellen|Makros und Code|Makro angelegt und unter einem von Ihnen vergebenen Namen gespeichert und im Navigationsbereich angezeigt werden
  • reine Ereignis-Makros, die als Makro für ein Ereignis eines Formulars, Berichts oder Steuerelements angelegt werden. Diese erscheinen nicht im Navigationsbereich.
  • Datenmakros sind Makros, die durch Ereignisse in Tabellen ausgelöst werden, also beim Anfügen, Löschen oder Ändern von Datensätzen.
  • benannte Makros sind Makros, die Sie im Kontext einer bestimmten Tabelle anlegen und die entweder durch ein Datenmakro oder durch ein herkömmliches Makro ausgelöst werden können.

Makro erstellen

Die folgenden Beispiele wurden unter Access 2010 durchgeführt. Wir möchten erstens die neuen Möglichkeiten untersuchen und zweitens die aktuelle Benutzeroberfläche zur Erstellung von Makros nutzen. Für einen ersten Überblick der Benutzeroberfläche erstellen Sie zunächst mit dem Ribbon-Eintrag Erstellen|Makros und Code|Makro ein neues Makro. Fügen Sie diesem nun per Auswahl über das Kombinationsfeld Neue Aktion hinzufügen einfach den Befehl Meldungsfeld hinzu.

Access zeigt nun direkt an Ort und Stelle die vier Eigenschaften für die Meldungsfeld-Makroaktion an (siehe Bild 4): Meldung, Signalton, Typ und Titel.

Ein erstes Makro mit einem Meldungsfeld

Bild 4: Ein erstes Makro mit einem Meldungsfeld

Die Eigenschaften sollten von der VBA-Funktion MsgBox bekannt sein, daher gehen wir an dieser Stelle nicht näher auf die Optionen ein. Speichern Sie das Makro unter dem Namen macMeldungsfeld.

Makro aufrufen

Die einfachste Möglichkeit, ein Makro aufzurufen, ist ein Doppelklick auf den Namen des Makros im Navigationsbereich von Access (siehe Bild 5).

Makro per Doppeklick starten

Bild 5: Makro per Doppeklick starten

Natürlich können Sie ein Makro auch bereits beim Erstellen durch einen Mausklick auf den Ribbon-Befehl Ent­wurf|Tools|Aus­führen aufrufen.

Makro per VBA aufrufen

Eine weitere Möglichkeit für den Aufruf eines Makros ist die Methode RunMacro des DoCmd-Objekts. Den folgenden Befehl können Sie beispielsweise im Direktbereich des VBA-Editors absetzen, aber auch in Funktionen oder Prozeduren integrieren:

DoCmd.RunMacro ""

Der Beispielaufruf aus Bild 6 zeigt, dass die RunMacro-Methode neben dem Makronamen noch zwei weitere Parameter anbietet:

Aufruf eines Makros im Direktbereich des VBA-Editors

Bild 6: Aufruf eines Makros im Direktbereich des VBA-Editors

  • RepeatCount: Gibt an, wie oft das Makro ausgeführt werden soll.
  • RepeatExpression: Enthält einen Ausdruck, der bei jeder der in RepeatCount angegebenen Ausführungen ausgewertet wird. Wenn der Ausdruck den Wert False enthält, wird die wiederholte Ausführung abgebrochen.

Sie können ein Makro auch von einem anderen Makro aus aufrufen. Wenn Sie also etwa unser Beispiel­makro macMeldungsfeld von einem anderen Makro etwa namens macAnderesMakroStarten aus starten möchten, legen Sie dieses Makro an und fügen diesem die Makroaktion AusführenMakro mit dem Namen des auszuführenden Makros als Parameter hinzu (siehe Bild 7).

Aufrufen eines anderen Makros von einem Makro aus

Bild 7: Aufrufen eines anderen Makros von einem Makro aus

Makro per Kontextmenü aufrufen

Wenn Sie in Ihrer Anwendung Kontextmenüs verwenden, können Sie über die dort enthaltenen Einträge nicht nur VBA-Funktionen, sondern auch Makros aufrufen.

In den neueren Access-Versionen, auf die wir uns hier beziehen, legen Sie Kontextmenüs per VBA an (siehe Artikel Kontextmenüs). Dort geben Sie die aufzurufende Prozedur mit der Eigenschaft OnAction des jeweiligen Steuerelements an. Dies sieht dann etwa wie in Listing 1 aus – siehe das Formular frmMakroPerKontextmenue in der Beispieldatenbank. Die Prozedur benötigt einen Verweis auf die Bibliothek Microsoft Office x.0 Object Library und zeigt gleich beim Öffnen des Formulars das entsprechende Kontextmenü mit dem Eintrag zum Auslösen des Makros macMeldungsfeld an.

Private Sub Form_Load()

     Dim cbr As CommandBar

     Dim cbc As CommandBarControl

     On Error Resume Next

     CommandBars("cbrMakro").Delete

     On Error GoTo 0

     Set cbr = CommandBars.Add("cbrMakro", msoBarPopup, False, True)

     Set cbc = cbr.Controls.Add(msoControlButton)

     With cbc

         .Caption = "Makro ausführen"

         .OnAction = "macMeldungsfeld"

     End With

     cbr.ShowPopup

End Sub

Listing 1: Diese Prozedur zeigt gleich beim Laden eines Formulars ein Kontextmenü mit einem Befehl an, der ein Makro aufruft.

Makros per Ereignis aufrufen

Makros können in Desktop-Datenbanken als Alternative für VBA-Ereignisprozeduren verwendet werden. In den sogenannten Webdatenbanken können Sie ausschließlich Makros zur Implementierung von Ereignissen verwenden.

Wenn Sie ein Makro durch ein Ereignis eines Formulars, Berichts oder Steuerelements auslösen möchten, haben Sie zwei Möglichkeiten:

  • Sie legen das Makro als eigenes Makro an (etwa mit dem Ribbon-Eintrag Erstellen|Makros und Code|Makro) und speichern es unter dem gewünschten Namen. Dann wählen Sie den Namen des Makros als Wert der entsprechenden Ereigniseigenschaft aus.
  • Sie klicken auf die Schaltfläche rechts neben der Ereigniseigenschaft und wählen aus dem nun erscheinenden Dialog den Eintrag Makro-Generator aus (siehe Bild 8). Es erscheint nun der Makro-Editor, mit dem Sie das Makro programmieren können.
  • Makro für ein Ereignis festlegen

    Bild 8: Makro für ein Ereignis festlegen

In letzterem Fall wird das Makro nicht unter einem von Ihnen vergebenen Namen gespeichert, sondern direkt mit dem Formular oder Bericht. Diese sogenannten eingebetteten Makros gab es in dieser Form zuvor nicht.

Mit den neueren Access-Versionen können Sie außerdem auch Makros für Steuerelemente festlegen, die quasi in die Steuerelemente eingebettet werden – das bedeutet, dass Sie ein Steuerelement von einem Formular zum nächsten kopieren können und das Makro gleich mit kopiert wird.

Datenmakros aufrufen

Datenmakros können Sie nicht „aufrufen”, sondern lediglich auslösen – und zwar durch das entsprechende Ereignis einer Tabelle (Anfügen, Bearbeiten oder Löschen von Daten). Die einzelnen Ereignisse schauen wir uns später an.

Benannte Makros aufrufen

Benannte Makros, also solche Makros, die Sie im Kontext einer Tabelle erstellt haben, rufen Sie mit der Makroaktion AusführenDatenmakro auf.

Mit dem Makro-Editor arbeiten

Der Makro-Editor von Access 2010 und jünger bietet gegenüber dem Vorgänger eine Reihe neuer Features an (dieser Hinweis für alle, die bereits mit älteren Access-Versionen gearbietet haben).

Wenn Sie einmal – wie weiter oben beschrieben – ein neues Makro angelegt haben, können Sie gleich mit dem Hinzufügen von Makroaktionen beginnen. Zunächst ist es hilfreich, die dabei zur Verfügung stehenden Ribbon-Elemente kennenzulernen. Diese sehen etwa unter Access 2010 wie in Bild 9 aus.

Makros über das Ribbon bearbeiten

Bild 9: Makros über das Ribbon bearbeiten

Wenn Sie das erste Mal mit dem neuen Makro-Editor arbeiten, stellen Sie sich möglicherweise die eine oder andere Frage – zum Beispiel, wie man eine Makroaktion ganz vorne im Makro einfügt.

Solche Fragen beantwortet das Makro-Ribbon nicht. Es stellt lediglich den einen oder anderen Befehl zur Verfügung, der so nicht im Makro-Editor selbst zu finden ist. So bietet das Makro-Ribbon etwa die folgenden Befehle:

  • Ausführen: Die schnellste Möglichkeit, um das aktuelle Makro zu starten. Achtung: Sie müssen ein Makro speichern, bevor Sie es ausführen können.
  • Einzelschritt: Mit dieser Schaltfläche aktivieren oder deaktivieren Sie den Einzelschrittmodus beim Ausführen von Makros. Ist die Option aktiviert, zeigt Access vor der Ausführung eines jeden Befehls den Dialog Einzelschritt an, der Informationen über den nächsten auszuführenden Befehl ausgibt (siehe Bild 10).
  • Der Einzelschritt-Modus des Makro-Editors

    Bild 10: Der Einzelschritt-Modus des Makro-Editors

  • Zu Visual Basic konvertieren: Dieser Befehl startet die Konvertierung von Makros zu Visual Basic-Prozeduren (mehr dazu weiter unten).
  • Aktionen erweitern: Erweitert alle markierten Aktionen (sind keine markiert, werden alle Aktionen erweitert).
  • Aktionen reduzieren: Zeigt für alle markierten Aktionen nur noch die erste Zeile und das Plus-Zeichen zum Erweitern an. Sind keine Aktionen markiert, werden alle Aktionen reduziert dargestellt.
  • Alles einblenden: Erweitert alle Aktionen.
  • Alle Ebenen reduzieren: Stellt alle Ebenen nur noch in Form der ersten Zeile dar.
  • Aktionskatalog: Blendet den Aktionskatalog ein und aus.
  • Alle Aktionen anzeigen: Zeigt, wenn gedrückt, alle Aktionen im Aktionskatalog an. Ist Alle Aktionen anzeigen nicht aktiviert, zeigt der Aktionskatalog nur die Aktionen an, die im aktuellen Kontext zulässig sind.

Makros konvertieren

Wenn Sie beispielsweise eine Datenbank bearbeiten sollen, indem Sie die vorhandenen Makros nach VBA konvertieren, können Sie dies zumindest teilweise automatisch erledigen lassen. Den dazu notwendigen Befehl Zu Visual Basic konvertieren haben Sie bereits weiter oben kennengelernt.

Wenn Sie diesen anklicken, liefert Access zunächst den Dialog aus Bild 11. Hier legen Sie fest, ob Sie eine Fehlerbehandlung zu der konvertierten VBA-Prozedur hinzufügen möchten oder ob die im Makro enthaltenen Kommentare im Code untergebracht werden sollen. Access legt für jedes konvertierte Makro ein neues VBA-Modul an, dessen Name aus Konvertiertes Makro- und dem Namen des Makros besteht, also beispielsweise Konvertiertes Makro- macMeldungsfeld.

Optionen für die Konvertierung von Makros zu VBA-Prozeduren

Bild 11: Optionen für die Konvertierung von Makros zu VBA-Prozeduren

Der Code sieht mit Fehlerbehandlung und Kommentaren beispielsweise wie in Bild 12 aus.

Ein nach VBA konvertiertes Makro

Bild 12: Ein nach VBA konvertiertes Makro

Makros eingeben

Die Eingabe von Makroaktionen ist einfach. Die erste Aktion können Sie direkt durch Auswahl im Kombinationsfeld eingeben, die Parameter fügen Sie über die dann erscheinenden Eingabefelder hinzu. Interessanter wird es, wenn Sie bereits einige Makroaktionen hinter­ein­ander eingegeben haben und dann weitere hinzufügen wollen, die nicht an der letzten Stelle eingefügt werden sollen. Wenn Sie etwa einen Makrobefehl an der ersten Position hinzufügen möchten oder zwischen zwei bestehenden Makroaktionen einfügen möchten, kommen Sie mit dem Kombinationsfeld nur auf Umwegen weiter. Sie können den neuen Befehl dann in der untersten Zeile eingeben und diesen dann per Drag and Drop an die gewünschte Position ziehen.

Wenn Sie eine Makroaktion direkt an der ersten Position oder zwischen zwei vorhandenen Makroaktionen einfügen möchten, benötigen Sie den Aktionskatalog. Von dort können Sie den einzufügenden Befehl per Drag and Drop an die gewünschte Position ziehen. Im Beispiel aus Bild 13 wird ein Kommentar aus dem Aktionskatalog gleich an die erste Position des Makros gezogen.

Befehl an der ersten Position hinzufügen

Bild 13: Befehl an der ersten Position hinzufügen

Wenn Sie mit einem der verschiedenen Blöcke wie etwa dem Wenn-Block arbeiten, gibt es verschiedene Techniken:

  • Wenn Sie einen komplett leeren Block anlegen möchten, ziehen Sie diesen einfach aus dem Aktionskatalog an die gewünschte Stelle.
  • Wenn das Makro bereits ein oder mehrere Makroaktionen enthält, die Sie mit einem Block wie einer Wenn-Bedingung einfassen möchten, markieren Sie die betroffenen Befehle und wählen dann aus dem Kontextmenü den zu verwendenden Block aus (zum Beispiel If-Block erstellen) – siehe Bild 14.
  • Befehl mit einem Wenn-Block einfassen

    Bild 14: Befehl mit einem Wenn-Block einfassen

  • Gegebenenfalls möchten Sie einen Block entfernen, aber nicht die enthaltenen Befehle. In diesem Fall markieren Sie alle enthaltenen Befehle, ziehen diese per Drag and Drop aus dem Block heraus und positionieren ihn entweder vor oder hinter dem Block (siehe Bild 15). Dann können Sie den Block löschen.
  • Inhalt einer Wenn-Bedingung herauslösen

    Bild 15: Inhalt einer Wenn-Bedingung herauslösen

Drag and Drop

Dem Ziehen und Fallenlassen von Elementen sind übrigens Grenzen gesetzt.

Während Sie einzelne Makroaktionen (oder auch zusammenängende einzelne Makroaktionen) oder auch Gruppierungen (siehe unten) problemlos überall hinziehen können, gelingt dies etwa mit Untermakros nicht: Diese lassen sich nicht an die erste oder letzte Position oder an die Position zwischen zwei anderen Makroaktionen verschieben.

Reihenfolge ändern

Wenn Sie einmal die Reihenfolge zweier benachbarter Makroaktionen vertauschen möchten, können Sie dies ebenfalls per Drag and Drop erledigen. Sie haben allerdings auch die Möglichkeit, dies per Tastatur zu erledigen. Dazu markieren Sie einfach den zu verschiebenden Block und betätigen dann die Tastenkombination Strg + Nach oben oder Strg + Nach unten – je nachdem, in welche Richtung Sie das markierte Element bewegen möchten.

Zwischenablage

Hilfreich bei der Arbeit mit Makros ist auch die Zwischenablage. Sie können einzelne Makroaktionen, komplette Blöcke oder auch zusammenhängende Elemente markieren, kopieren (zum Beispiel mit der Tastenkombination Strg + C), ausschneiden (Strg + X) und an beliebiger Stelle wieder einfügen (Strg + V).

Was aber landet denn dort überhaupt in der Zwischenablage? Dies erfahren Sie, wenn Sie den Inhalt etwa in einen Texteditor einfügen (siehe Bild 16). Makros sind nämlich ab Access 2010 nichts anderes als mit XML definierte Anweisungen. Dies liegt auf der Hand: Sowohl die Struktur als auch die Eigenschaften und Parameter der Makro-Aktionen lassen sich per XML einfach abbilden.

Inhalt der Zwischenablage nach dem Kopieren einer Makroaktion

Bild 16: Inhalt der Zwischenablage nach dem Kopieren einer Makroaktion

Über die Zwischenablage können Sie auch Makro-Aktionen oder komplette Makros von einer Anwendung zu nächsten kopieren.

Wenn Sie ein oder mehrere Makroaktionen per Maus kopieren möchten, gehen Sie folgendermaßen vor:

  • Markieren Sie die zu kopierenden Elemente.
  • Ziehen Sie den markierten Bereich bei gedrückter Strg-Taste an die gewünschte Stelle. Fertig!

Kommentare in Makros

Seit Access 2010 und somit mit der neuen Benutzeroberfläche für die Programmierung von Makros können Sie Makros auch Kommentarzeilen hinzufügen. Dazu wählen Sie aus dem Kombinationsfeld zum Hinzufügen eines neuen Blocks den Eintrag Kommentar aus und geben den gewünschten Kommentar als Wert des einzigen Parameters dieser „Makroaktion” ein.

Das Ergebnis sieht wie in Bild 17 aus. Interessanterweise wird hier nicht das unter VBA als Kommentarzeichen verwendete Hochkomma verwendet, sondern das etwa von C# verwendete.

Kommentarzeile in einem Makro

Bild 17: Kommentarzeile in einem Makro

Makros gruppieren

Der Aktionskatalog des Makro-Editors von Access 2010 und neuer zeigt im oberen Bereich eine Kategorie namens Programmablauf an. Diese enthält als Erstes den Befehl Gruppieren. Damit können Sie ein oder mehrere Makroaktionen zu einer Gruppe zusammenfassen.

Um eine solche Gruppierung zu erstellen, haben Sie zwei Möglichkeiten:

  • Sie ziehen das Gruppieren-Element aus dem Aktionskatalog in das Makro und fügen der Gruppierung dann die gewünschten Befehle hinzu (entweder durch Neuanlegen, durch Copy and Paste oder auch per Drag and Drop).
  • Sie markieren die zu gruppierenden Elemente und wählen dann aus dem Kontextmenü den Eintrag Gruppenblock erstellen aus.

Beides führt dazu, dass die betroffenen Makroaktionen in ein neues Element eingeschlossen werden, für das Sie einen Gruppennamen vergeben können (siehe Bild 18).

Gruppierung im Makro

Bild 18: Gruppierung im Makro

Die Gruppierung hat folgenden Zweck:

  • Sie geben zusammenhängenden Makroaktionen einen Namen.
  • Sie können die gruppierten Makroaktionen nun en bloc ein- und ausblenden (siehe Bild 19).
  • Minimierte Gruppierung

    Bild 19: Minimierte Gruppierung

Sie können übrigens auch verschachtelte Gruppierungen definieren.

Untermakros

Wenn Sie mehrere inhaltlich zusammenhängende Makros erstellen, können Sie diese auch als Untermakros in einem einzigen Makro erstellen.

Das ist zum Beispiel sinnvoll, wenn Sie verschiedene Makros, die alle Datenoperationen bezogen auf eine bestimmte Tabelle enthalten, zusammenfassen wollen.

Bild 20 zeigt ein Makro mit zwei Untermakros, die jeweils die Makroaktion Meldungsfeld mit verschiedenen Meldungen enthalten. Nun gehen wir zunächst davon aus, dass Sie das Makro auf herkömmliche Weise aufrufen, also ohne Bezug auf eines der Untermakros. Wenn sie dies etwa durch einen Doppelklick auf das Makro im Navigationsbereich erledigen, geschieht Folgendes:

Makro mit zwei Untermakros

Bild 20: Makro mit zwei Untermakros

  • Wenn Sie ein ausschließlich aus Untermakros bestehendes Makro aufrufen, führt dieses nicht etwa alle Untermakros samt der enthaltenen Makroaktionen aus, sondern nur das erste Untermakro mit seinen Makroaktionen.
  • Wenn das Makro zunächst ein oder mehrere einzelne Makroaktionen enthält, führt der Aufruf diese Aktionen aus, aber keine Untermakros.

Wenn Sie gezielt ein Untermakro aufrufen wollen, benötigen Sie die beispielsweise die Makroaktion AusführenMakro, etwa von einem anderen Makro aus. Dort legen Sie dann wie gewohnt die Makroaktion AusführenMakro an.

Der Unterschied ist, dass Sie nun eine andere Syntax verwenden, nämlich ..

Sie brauchen die Makronamen und Untermakronamen jedoch nicht auswendig zu kennen, sondern können diese komfortabel aus einem Kombinationsfeld auswählen (siehe Bild 21).

Aufrufen eines Untermakros von einem anderen Makro aus

Bild 21: Aufrufen eines Untermakros von einem anderen Makro aus

Makros und Untermakros werden auch als Werte für die Ereigniseigenschaften von Formularen, Berichten und Steuerelementen zur Auswahl angeboten (siehe Bild 22).

Untermakro per Schaltfläche aufrufen

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!