Makros, Teil 1: Grundlagen

Zusammenfassung

Lernen Sie die Vor- und Nachteile von Makros und deren Grundlagen kennen.

Techniken

Makros, Formulare

Voraussetzungen

Access 97 und höher

André Minhorst, Duisburg

Unter VBA-Profis verpönt, von Einsteigern und Gelegenheitsnutzern geliebt: Makros erlauben das Automatisieren vieler Aufgaben in Access ohne Programmierkenntnisse. In diesem Beitrag erfahren Sie, wie Makros funktionieren und wann ihr Einsatz sinnvoll ist.

“Makros – das ist doch was für Anfänger!”, mag der erfahrene VBA-Entwickler sagen. Doch dieser Beitrag ist nicht nur für Einsteiger gedacht, sondern auch für Fortgeschrittene: Wann haben Sie denn das letzte Mal mit einem Makro gearbeitet – und wissen Sie überhaupt noch, wie das genau geht Früher oder später stößt man als Access-Entwickler mal wieder auf eine Datenbank, die ein Kunde mehr oder weniger liebevoll mit Makros bestückt hat – und muss diese dann anpassen oder direkt durch passende VBA-Routinen ersetzen. Auch damit beschäftigt sich diese Beitragsreihe.

Und ganz nebenbei: Makros sollen in Access 2007 eine Aufwertung erfahren – mehr dazu in einer der folgenden Ausgaben von Access im Unternehmen.

Word und Excel stellen Funktionen zur Verfügung, mit denen man Benutzeraktionen als Makros aufzeichnen und erneut abspielen kann. Hinter einem solchen Makro verbirgt sich jeweils eine VBA-Routine als Repräsentation der beim Aufzeichnen durchgeführten Aktionen. Der Clou ist, dass versierte Anwender die VBA-Routinen anpassen und damit beliebige Vorgänge automatisieren können.

Wer in Access einen ähnlichen Ansatz erwartet, irrt: Die Makros von Access haben rein gar nichts mit VBA zu tun, und Benutzeraktionen kann man damit auch nicht aufzeichnen.

Vielmehr stehen Makros für “Programmieren light”: Sie erlauben das Ausführen vieler Aktionen wie das öffnen wie Formularen oder Berichten, das Anzeigen von Meldungsfenstern oder das Löschen und Hinzufügen von Datensätzen.

Meist entscheiden die Kenntnisse eines Access-Anwenders darüber, ob er Funktionen mit Makros oder mit VBA programmiert. Wer VBA beherrscht, sollte in jedem Fall VBA einsetzen. Wer kein VBA kann, sollte prüfen, ob Makros zum Lösen der jeweiligen Aufgabe ausreichen – und die Antwort darauf fällt gar nicht so leicht. Dazu müsste man nämlich im Vorfeld wissen, welche Funktionen die Anwendung insgesamt enthalten wird – und das ist praktisch unmöglich, denn die meisten Anwendungen sind erstens nie “fertig”, und zweitens weiß man nicht im Voraus, welche Techniken man zukünftig für die Umsetzung der gewünschten Funktionen benötigt. Auch hier gilt: Mit VBA ist man auf der sicheren Seite; nur wenn man sicher ist, dass Makros für die zu programmierenden Funktionen ausreichen und keine weiteren Funktionen hinzukommen, kann man Makros guten Gewissens einsetzen.

Bild 1: Das Datenbankfenster mit einigen Makros.

Solange die Menge der verwendeten Makros überschaubar ist, lassen sich diese leicht in entsprechende VBA-Funktionen umwandeln – man sollte hier allerdings rechtzeitig die Notbremse ziehen: Sonst lässt man nämlich irgendwann seine Anwendung mit vielen hundert Makros von einem professionellen Entwickler erweitern, und wird feststellen, dass Entwickler auf solche Aufgaben nicht besonders freudig reagieren.

Grenzen von Makros

Makros haben Grenzen. Und die werden umso deutlicher, je mehr man damit arbeitet: Der Funktionsumfang ist beschränkt, es fehlen Debugging- und Fehlerbehandlungsmöglichkeiten, und die Wartungsfreundlichkeit …

Vorteile von Makros

Wer Makros als das Mittel der Wahl zur Umsetzung seiner Datenbank-Funktionen nutzt, hat natürlich auch einige Vorteile erkannt: Sie sind einfach im Aufbau und lassen sich ohne Kenntnisse einer Programmiersprache leicht erstellen. Es wird lediglich eine Reihe von Aktionen nacheinander ausgeführt, die Sie auch alle von Hand über die Menüleisten und durch Eingaben tätigen könnten.

Das wichtigste Einsatzgebiet für Makros ist deshalb die Automatisierung sich wiederholender Arbeitsabläufe. Darunter fallen beispielsweise Berechnungen, aber auch das Kopieren von Daten oder das öffnen eines Formulars.

In diesem Kapitel erfahren Sie, wie Sie Makros öffnen, neu anlegen und bearbeiten. Anhand eines Beispiels lernen Sie dabei den Aufbau eines Makros und die prinzipielle Vorgehensweise zum Erstellen von Aktionen kennen.

Makros im Datenbankfenster

Access verwaltet Makros wie alle anderen Datenbankobjekte im Datenbankfenster. Um alle vorhandenen Makros der aktuellen Datenbank aufzulisten, klicken Sie im Datenbankfenster auf das Register Makros. Sollte dieses Fenster nicht aktiv sein, bringen Sie es mit der Taste F11 in den Vordergrund (siehe Bild 1).

Um ein vorhandenes Makro zu bearbeiten, markieren Sie es im Datenbankfenster und klicken anschließend auf die Schaltfläche Entwurf. Ein neues Makro erstellen Sie über die Schaltfläche Neu.

Das Makrofenster

Sobald Sie ein Makro zum Entwurf öffnen oder ein neues anlegen, erscheint das Makrofenster. Dort verwalten Sie alle Aktionen eines Makros (siehe Bild 2).

Das Makrofenster zeigt in der Grundeinstellung zwei Spalten an. In der Spalte Aktion geben Sie die gewünschten Aktionen ein. In der Spalte Kommentar können Sie jeder Aktion eine Beschreibung hinzufügen.

In jeder Zeile des Makrofensters steht genau eine Aktion. Beim Ausführen eines Makros werden die Aktionen nacheinander von oben nach unten abgearbeitet. Die Reihenfolge, in der Sie die Aktionen anordnen, ist also entscheidend für den Ablauf des Makros.

Bild 2: Das Makrofenster enthält alle Aktionen eines Makros.

Nachdem Sie ein neues Makro erstellt haben, werden Sie beim Schließen automatisch dazu aufgefordert, dem Werk einen Namen zu geben, unter dem es gespeichert wird.

Hinweis

Ein Makro bekommt eine besondere Bedeutung, wenn Sie ihm den Namen Autoexec geben. Dieses Makro wird beim öffnen der Datenbank automatisch ausgeführt.

Erste Schritte

Im folgenden Beispiel erzeugen Sie eine Meldung mit Hilfe eines Makros. Dabei lernen Sie die Eingabe von Aktionen, den Aufbau einer Aktion mit ihren Aktionsargumenten und das Starten von Makros kennen.

Aktionen eingeben

Eine neue Aktion geben Sie ein, indem Sie zunächst in eine freie Zeile klicken. Es erscheint dann am rechten Rand der Spalte der Pfeil eines Kombinationsfeldes. Klicken Sie auf den Pfeil, um die Liste des Kombinationsfeldes aufzuklappen. In der Liste sind alle verfügbaren Makro-Aktionen aufgeführt. Sie brauchen nur den entsprechenden Eintrag auszuwählen.

Alternativ dazu können Sie eine Aktion auch direkt per Tastatur eingeben.

Bild 3: Auswählen einer Makro-Aktion

Es genügt dabei die Eingabe der ersten beiden Buchstaben Me. Den Rest ergänzt Access automatisch. Wenn Sie nach einiger Zeit mit den Makro-Aktionen vertraut sind, ist die direkte Eingabe häufig einfacher und schneller als die Auswahl aus der Liste (siehe Bild 3).

Eine Meldung erzeugen

Um eine Meldung auf dem Bildschirm auszugeben, verwenden Sie die Aktion Meldung. Erzeugen Sie dazu über das Datenbankfenster ein neues Makro und geben Sie die Aktion wie zuvor beschrieben in der ersten Aktionszeile ein.

Diese Aktion ist damit freilich noch nicht vollständig beschrieben. Es ist bis jetzt nirgendwo festgelegt, welcher Text ausgegeben wird. Zu diesem Zweck werden im unteren Teil des Makrofensters Aktionsargumente zur aktiven Aktion aufgeführt. Für die Aktion Meldung sind dies die Argumente Meldung, Signalton, Typ und Titel. über diese Argumente konfigurieren Sie die Meldung.

Hinweis

Jede Aktion hat andere Aktionsargumente. Sobald Sie eine Aktion auswählen, erscheinen die entsprechenden Argumente im unteren Teil des Makrofensters.

Beim Argument Meldung geben Sie den Text ein, der im Meldungsfenster erscheinen soll. Auf die gleiche Weise können Sie den Titel des Meldungsfensters eingeben.

Für die Aktionsargumente Signalton und Typ sind keine beliebigen Eingaben erlaubt, sondern dort können nur vordefinierte Werte abgelegt werden, die Access über eine Liste vorgibt (siehe Bild 4).

Wer bereits mit der MsgBox-Anweisung gearbeitet hat, wird schnell feststellen, dass die Makro-Funktion Meldung und deren Optionen diese Anweisung fast genau nachbilden.

Bild 4: Auswahl von Argumenten für eine Option.

Hinweis

Rechts neben den Aktionsargumenten zeigt Access immer einen Hilfetext zu dem gerade aktiven Argument an. Der Text beschreibt die Funktion des Arguments und gibt manchmal Beispiele vor.

Starten von Makros

Makros starten Sie entweder per Doppelklick auf den passenden Eintrag im Datenbankfenster oder – wenn Sie das Makro gerade geöffnet haben – mit einem Klick auf das Ausführen-Symbol in der Menüleiste beziehungsweise mit dem Menüpunkt Ausführen/Ausführen.

Sofern Sie alle Schritte bis jetzt nachvollzogen haben, erscheint auf dem Bildschirm ein Meldungsfenster. Bestätigen Sie die Meldung mit einem Klick auf OK. Da das Makro nur eine Aktion enthält, ist seine Ausführung anschließend beendet.

Makro erweitern

Das Makro soll nun um eine zweite Aktion ergänzt werden. Nachdem die Meldung mit OK bestätigt wird, soll noch ein Signalton über den PC-Lautsprecher beziehungsweise die Soundkarte ausgegeben werden.

Gehen Sie dazu wie folgt vor:

  • Klicken Sie in der ersten freien Zeile, also unterhalb der Meldung-Aktion, in die Spalte Aktion.
  • Wählen Sie aus der Liste die Aktion Signalton aus. Für die Aktion sind keine weiteren Aktionsargumente erforderlich.
  • Speichern Sie das Makro über den Menüpunkt Datei/Speichern oder über die Tastenkombination Strg + S. (
  • Sie können das Makro nun wie zuvor beschrieben ausführen. Zunächst wird die erste Aktion ausgeführt, also die Meldung angezeigt. Erst wenn Sie das Meldungsfenster mit einem Klick auf OK schließen, ertönt der Signalton. Dieses erweiterte Beispiel soll zeigen, dass eine Aktion immer erst dann ausgeführt wird, wenn die vorangegangene Aktion vollständig abgearbeitet ist.

    Bearbeiten von Makros

    Es ist oft notwendig, ein bestehendes Makro nachträglich zu verändern. Dies kann beispielsweise sein, um eine oder mehrere Aktionen einzufügen oder um Aktionen in eine neue Reihenfolge zu bringen.

    Aktionszeilen verschieben

    Um eine Aktionszeile an eine andere Position zu verschieben, markieren Sie zunächst die Zeile mit einem Klick auf den Zeilenmarkierer links neben der Aktion. Anschließend klicken Sie erneut auf den Zeilenmarkierer und halten die linke Maustaste gedrückt. Per Drag and Drop können Sie nun die Zeile nach oben oder unten bewegen.

    Die Position wird durch eine horizontale Linie angezeigt. Lassen Sie die Maustaste an der gewünschten Position los. Die Aktion wird dann inklusive aller Aktionsargumente unterhalb der Linie eingefügt. Sollte an der Position bereits eine Aktion vorhanden sein, verschiebt Access diese und alle folgenden automatisch nach unten.

    Sie können auch mehrere Zeilen gleichzeitig verschieben. Dazu markieren Sie mehrere aufeinander folgende Zeilen, indem Sie auf den ersten Zeilenmarkierer klicken.

    Bei gedrückter Maustaste bewegen Sie dann den Mauszeiger über die Zeilen, die Sie zusätzlich markieren wollen. Wenn Sie die Maustaste loslassen, werden alle markierten Zeilen invertiert dargestellt. Diese lassen sich wie einzelne Zeilen verschieben.

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

    den kompletten Artikel im PDF-Format mit Beispieldatenbank

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar