Makros

Die Nutzung von Makros ist nicht zu empfehlen. Obwohl sie für Anfänger relativ leicht zu erlernen sind, sind sie für eine sinnvolle Anwendung nur bedingt brauchbar, so sind sie zum Beispiel extrem starr und unflexibel. Anstelle von Makros sollte man, trotz höherer Einarbeitungszeit, Module verwenden. Module werden in der Programmiersprache Visual Basic für Applikationen (abgekürzt „VBA“) geschrieben. Die Möglichkeiten und die Flexibilität von VBA geht weit über die Möglichkeiten von Makros hinaus. Darüber hinaus ist VBA auch in den meisten anderen Officeanwendungen integriert, so dass VBA-Kenntnisse auch dort genauso genutzt werden können. Daher wird hier nur das Notwendigste über Makros kurz angesprochen.

Makros bestehen aus einzelnen Makroaktionen, die im Makroeditor aus Kombinationsfeldern ausgewählt werden. Je nach Makroaktion gibt es entsprechende Einstellungen. Ist ein Makro erst einmal gespeichert, kann es aus Formularen oder Berichten heraus aufgerufen werden, indem dort der Makroname in einer Ereigniseigenschaft eingetragen wird.

Beim Klicken  

Anstelle eines Makros kann man aus der Ereigniseigenschaft aber genauso gut auch VBA-Code starten. Dazu wählt man [Ereignisprozedur] aus und startet dann mit einem Klick auf den …-Button den VBA-Editor. Sämtliche Makroaktionen stehen in VBA als Methoden des DoCmd-Objekts zur Verfügung. Somit kann man, was mit Makros möglich ist, auch in VBA umsetzen - nur, dass damit die Möglichkeiten von VBA bei Weitem noch nicht ausgereizt sind.

Seit Access 2010 gibt es allerdings eine kleine Ausnahme: Für Access ist eine neue Funktion hinzugekommen, das bisher von Accessentwicklern vermisst wurde: Datenmakros bieten eine Art Ereignisüberwachung für Tabellen. Das entspricht in etwa dem, was in anderen Datenbanken „Trigger“ genannt wird und war bisher in Access nur über den Umweg einer Ereignisüberwachung in Formularen möglich. Leider kann man - aus welchen Gründen auch immer - keine Datenmakros über VBA programmieren. Wenn man also eine Ereignisüberwachung unmittelbar auf Tabellenebene nutzen will, muss man auf Makros zurückgreifen (Wie gut, dass es dafür nur selten Bedarf gibt). In allen anderen Fällen ist jedoch nach wie vor VBA die bessere Wahl.