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 Option: nämlich über ein benutzerdefiniertes Ribbon. Im vorliegenden Beitrag zeigen wir, wie Sie eine VBA-Funktion beim Starten unter Verwendung des Ribbons aufrufen können.
Neben dem AutoExec-Makro, dessen Einsatz wir im Beitrag Code beim Öffnen der Anwendung: AutoExec (www.access-im-unternehmen.de/1367) beschreiben, gibt es mit dem Startformular noch eine weitere Option – siehe Code beim Öffnen der Anwendung: Formular (www.access-im-unternehmen.de/1368).
Es gibt seit der Einführung des Ribbons jedoch noch eine weitere Möglichkeit, gleich beim Öffnen der Datenbank VBA-Code auszuführen. Diese hier ist zwar etwas aufwendiger, aber wenn Sie ohnehin ein Ribbon beim Start der Datenbankanwendung anzeigen, ist nur eine einzige zusätzliche Zeile zum Aufrufen der Startfunktion nötig. Außerdem sparen Sie so ein AutoExec-Makro beziehungsweise ein beim Starten der Anwendung zu öffnendes Formular ein.
Startfunktion
Wir gehen in den beiden oben angegebenen Beiträgen davon aus, dass wir eine Funktion wie die folgende beim Start der Anwendung aufrufen wollen:
Public Function Startup() MsgBox "Meldung per VBA" End Function
Um diese automatisch beim Start aufzurufen und dabei ein Ribbon statt des AutoExec-Makros oder eines Startformulars zu nutzen, benötigen Sie zunächst eine minimale Ribbondefinition. Diese sieht wie folgt aus:
xml version="1.0"> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="OnLoad_Startup"/>
Diese Definition fügen Sie einer Tabelle namens USysRibbons hinzu, deren Entwurf wie in Bild 1 aussieht. Für das Feld RibbonName stellen wir einen eindeutigen Index ein. Wenn Sie diese Tabelle so angelegt und unter dem Namen USysRibbons gespeichert haben, wird diese möglicherweise nicht im Navigationsbereich angezeigt – das liegt daran, dass die Tabelle mit diesem Namen als Systemtabelle erkannt und ausgeblendet wird. Sie können diese dann entweder mit dem folgenden Befehl öffnen oder die Anzeige der Systemobjekte in den Optionen aktivieren: