Datenbank schließen mit Rückfrage

Access bietet zwar die Möglichkeit, per Startoptionen direkt beim Start ein Formular zu öffnen oder ein Makro namens Autoexec automatisch auszuführen. Ein Pendant dazu für das Schließen der Datenbank sucht man jedoch vergeblich. inside Access zeigt, wie Sie die fehlende Funktion nachrüsten.

Es gibt viele Gründe für ein Ereignis, das beim Schließen einer Datenbankanwendung ausgelöst wird, etwa eine Abfrage, ob der Benutzer die Anwendung auch wirklich beenden möchte, oder eine Funktion, die mit dem Schließen der Anwendung automatisch einen Log-Eintrag erstellt, dass der Benutzer die Anwendung beendet hat. Eine hinlänglich bekannte und leicht zu realisierende Variante baut auf einem Formular auf, das beim Start der Anwendung geöffnet und sofort unsichtbar geschaltet wird. Diesem Formular gibt man den beim Schließen der Anwendung auszuführenden Code im Ereignis Beim Entladen mit. Der Clou ist, das Access vor dem Beenden alle Formulare ordnungsgemäß schließt – natürlich auch die unsichtbaren.

Um dies nachzuvollziehen, erstellen Sie einfach ein Formular namens frmUnsichtbaresFormular, dem Sie für das Ereignis Beim Entladen die Routine aus Listing 1 hinzufügen.

Private Sub Form_Unload(Cancel As Integer)
MsgBox "Unsichtbares Formular wird entladen"
End Sub

Bild 1: Dieses Makro öffnet beim Starten der Anwendung automatisch ein Formular und macht es unsichtbar.
Bild 1: Dieses Makro öffnet beim Starten der Anwendung automatisch ein Formular und macht es unsichtbar.

Anschließend erstellen Sie ein Makro namens AutoExec und fügen zu diesem die Aktion Öffnen- Formular mit den Parametern aus Bild 1 hinzu. Nun müssen Sie nur noch die Datenbank schließen und wieder öffnen, damit das Formular im Hintergrund geladen ist. Wenn Sie die Anwendung nun erneut schließen, erscheint das Meldungsfenster aus dem Ereignis Beim Entladen.