Wenn Sie Code beim Öffnen einer Access-Datenbank ausführen wollen, gibt es zwar keine direkte Möglichkeit wie etwa ein Ereignis beim Öffnen eines Formulars. Es gibt allerdings verschiedene Techniken, mit denen Sie dennoch den Zeitpunkt des Öffnens der Anwendung abfangen und dabei VBA-Code ausführen können. Bisher nutzte man hier vornehmlich die Möglichkeiten über das Makro namens AutoExec und das Startformular, aber es gibt noch eine weitere Möglichkeiten: nämlich über ein benutzerdefiniertes Ribbon. Im vorliegenden Beitrag schauen wir uns das AutoExec-Makro an und zeigen, wie Sie damit VBA-Code aufrufen können.
Microsoft Access bietet zwei Möglichkeiten an, um Abläufe zu programmieren und auf Ereignisse zu reagieren. Die erste und wohl eher von Einsteigern genutzte Technik sind die sogenannten Makros. Diese sind ein eigener Objekttyp und nicht mit den Makros unter Word und Excel zu verwechseln: Unter Word und Excel heißen nämlich VBA-Prozeduren, die das Wiederholen von bestimmten Abläufen ermöglichen und die auch aufgezeichnet werden können, ebenfalls Makros.
Die zweite Möglichkeit, unter Microsoft Access Abläufe zu programmieren, ist VBA. Diese Programmiersprache ist zwar komplizierter, aber wesentlich flexibler als die Makros. Wenn Sie beim Start einer Access-Anwendung jedoch VBA-Code ausführen wollen, gibt es keinen eigens dafür vorgesehenen Weg. Stattdessen ist einer der Wege eben eines der zuvor beschriebenen Makros.
Genau genommen benötigen Sie sogar ein spezielles Makro dafür, das sich durch seinen Namen von anderen Makros unterscheidet: Es muss auf jeden Fall AutoExec heißen. Access prüft nämlich beim Öffnen einer Datenbank, ob diese ein Makro namens AutoExec enthält. Falls ja, wird dieses gleich beim Starten ausgeführt. Nun haben wir ja schon beschrieben, dass die Programmierung mit Makros an sich weniger Möglichkeiten bietet und so möchten Sie vielleicht auch schon beim Start der Anwendung Prozeduren aufrufen, die in der Programmiersprache VBA geschrieben sind.
Das ist kein Problem, denn Makros bieten eine ganze Reihe verschiedener Befehle an, unter anderem auch einen, mit dem Sie eine VBA-Funktion aufrufen können. Sie finden hier also die perfekte Symbiose aus einem Makro und einer VBA-Routine.
Beim Start auszuführende Funktion definieren
Bevor wir das Makro anlegen, das beim Öffnen der Anwendung gestartet werden und unsere VBA-Funktion ausführen soll, legen wir erst einmal die VBA-Funktion an. In unserem Fall wollen wir einfach eine Meldung ausgeben, die angibt, dass sie von einer VBA-Funktion aufgerufen wurde.
In einer neuen, leeren Access-Datenbank nutzen Sie den Ribbonbefehl Erstellen|Makros und Code|Modul, um ein neues Standardmodul anzulegen und im VBA-Editor zu öffnen. Hier fügen wir nun die folgende Funktion ein:
Public Function Startup() MsgBox "Meldung per VBA" End Function
Diese Funktion können Sie durch Platzieren der Einfügemarke innerhalb des Funktionscodes und Betätigen der Taste F5 starten und sich von der Funktion überzeugen. Sollte dies nicht klappen, ist die Anwendung vielleicht noch nicht als vertrauenswürdig eingestuft – das müssten Sie dann prüfen und korrigieren.
AutoExec-Makro anlegen
Danach wechseln Sie wieder zum Access-Fenster und erstellen ein neues Makro. Dazu nutzen Sie den Ribbonbefehl Erstellen|Makros und Code|Makro.
Sobald das neue, leere Makro angezeigt wird, können Sie die erste und einzige Makro-Aktion hinzufügen. Dazu wählen Sie aus dem Auswahlfeld den Eintrag AusführenCode aus. Anschließend fügen Sie für den einzigen Parameter der Makroaktion den Namen der Funktion ein – angeführt von einem Gleichheitszeichen und gefolgt von einem Klammernpaar (siehe Bild 1).
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