window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Datenbankereignis beim Schließen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Access bietet die Möglichkeit, beim Start ein Makro namens AutoExec auszuführen oder ein als Startformular angegebenes Startformular anzuzeigen. Damit lassen sich gleich bei Start notwendige Aktionen durchführen. Beim Schließen einer Datenbank sieht es anders aus: Hier stellt Microsoft keine eingebaute Möglichkeit bereit, um abschließende Arbeiten durchzuführen. Dazu gehört beispielsweise das Speichern von während der Benutzung geänderten Konfigurationsdaten. Dieser Artikel zeigt, wie Sie diese Funktion nachrüsten.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1406_DatenbankereignisBeimSchliessen.mdb.

Dass beim öffnen einer Datenbank Aktionen ausgeführt werden, ist selbstverständlich. Aber manchmal ist es auch nötig, das Schließen einer Datenbank abzufangen – und wenn Sie auch nur aus irgendeinem Grund fragen möchten: Wollen Sie die Anwendung wirklich beenden

Vielleicht haben Sie aber auch einen besseren Grund – beispielsweise könnten Sie so Informationen, die Sie während der Anwendung in globalen Variablen oder in TempVars speichern, um nicht ständig auf die Optionentabelle zugreifen zu müssen, wieder zurückschreiben.

Wie auch immer: Zunächst einmal müssen herausfinden, wie man den Zeitpunkt des Schließens der Anwendung ermittelt. Tatsache ist nämlich, dass Access keine solche Funktion wie etwa beim Starten einer Anwendung bereitstellt.

AutoClose über Umwege

Da es keine eingebaute Möglichkeit gibt, prüfen wir einmal, welchen Weg wir wählen können. Gibt es überhaupt andere Ereignisse, die man etwa mit dem Access-Anwendungsobjekt assoziieren könnte Also so etwas wie Access_Close Nein: Access bietet keine solchen Möglichkeiten.

Aber wer sagt denn, dass wir uns in diesem Fall an Access selbst halten müssen Vielleicht löst Access ja ein Ereignis eines anderen Objekts aus, wenn man es schließt … und das ist unser Ansatzpunkt: Wenn beispielsweise bei Schließen von Access noch ein Formular geöffnet ist, dass wird dieses natürlich auch geschlossen. Außer, Sie haben änderungen am Entwurf vorgenommen – dann fragt Access noch, ob Sie die änderungen speichern wollen. Wir wollen uns aber ohnehin eher auf die Ereignisse konzentrieren, und dort bieten Formulare beim Schließen gleich mehrere Ereignisse, zum Beispiel

  • Beim Schließen und
  • Beim Entladen.

Legen wir also für beide Ereignisse testweise je eine Ereignisprozedur an, indem wir die entsprechenden Eigenschaften Beim Schließen und Beim Entladen auf [Ereignisprozedur] einstellen und dann auf die Schaltfläche mit den drei Punkten auf der rechten Seite klicken (siehe Bild 1).

Ereignisse anlegen, die beim Schließen eines Formulars ausgelöst werden

Bild 1: Ereignisse anlegen, die beim Schließen eines Formulars ausgelöst werden

Zunächst wollen wir testen, in welcher Reihenfolge die beiden Ereignisse ausgelöst werden. Dazu legen Sie für beide Prozeduren je einen Haltepunkt im VBA-Editor fest (Sie können auch Meldungsfenster einfügen, wenn Sie möchten). Dann öffnen Sie das Formular in der Formularansicht und schließen es. Schnell wird deutlich, dass Beim Entladen zuerst aufgerufen wird, erst dann folgt Beim Schließen (siehe Bild 2).

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar