Makros in Access 2007

Vorsicht, Makro!

Die Vorgehensweise an sich ist nicht gerade revolutionär und birgt überdies einen großen Nachteil gegenüber dem Einsatz von VBA-Ereignisprozeduren: Während man die zu einem Formular oder Bericht gehörenden VBA-Ereignisprozeduren übersichtlich im Codefenster einsehen kann, kann man sich zur selben Zeit nur ein Makro ansehen. Schuld daran ist der neue Makro-Editor, der stets als modaler Dialog geöffnet wird und noch nicht einmal die Möglichkeit bietet, andere Objekte zu öffnen – der dazu notwendige Navigationsbereich wird schlichtweg deaktiviert.

Ein weiteres Manko ist, dass gespeicherte und im Navigationsbereich sichtbare Makros von dort per Doppelklick gestartet werden können. Im Gegensatz zu einer VBA-Prozedur, die man explizit über ein entsprechendes Ereignis, beim Debuggen über oder das Direktfenster aufruft, reicht hier ein Mausklick, um beispielsweise ein Makro zum Löschen von Daten auszulösen.

Vorteil Makro

Wer Steuerelemente wie etwa Schaltflächen oder Textfelder mit VBA-Ereignissen kopieren möchte, um sie entweder im gleichen oder einem anderen Formular zu reproduzieren, muss sich auf Zusatzaufwand gefasst machen: VBA-Prozeduren, die durch Ereignisse ausgelöst werden, kopiert Access nicht mit. Genau genommen leert es beim Kopieren sogar die passenden Ereigniseigenschaften. Dies hat Microsoft bei der Verwendung eingebetteter Makros besser gelöst: Diese werden komplett mit kopiert. Das Gleiche gilt für das Löschen von Steuerelementen mit eingebetteten Makros: Sie verschwinden mit den Steuerelementen und verbleiben nicht – wie bei VBA – als unnötiger Ballast im jeweiligen Modul.

Bild 3: Warum kann man Makros trotz höchster Sicherheit problemlos aufrufen?
Bild 3: Warum kann man Makros trotz höchster Sicherheit problemlos aufrufen?

Der zweite Vorteil ist, dass Makros nie als sicherheitskritisch erachtet werden und dementsprechend selbst bei höchster Sicherheit ohne Rückfrage aufgerufen werden können. Bei Access-Neulingen und weniger erfahrenen Benutzern dürfte die inkonsequente Verwendung der Bezeichnung „Makro“ allerdings für Verwirrung sorgen. Die Sicherheitseinstellungen aus Bild 3 etwa deuten darauf hin, dass Access keinerlei Makros ausführen dürfte – damit sind allerdings nicht die soeben beschriebenen Makros, sondern VBA-Routinen gemeint. Der Hintergrund ist, dass Microsoft VBA-Routinen unter Word oder Excel den Namen Makro verpasst, unter Access aber diesen Namen für einen speziellen Objekttyp reserviert hat.