DAO: Datenbank im Griff mit dem Database-Objekt

Wenn Sie mit VBA auf Informationen zur aktuellen Datenbank zugreifen möchten, bietet die DAO-Bibliothek mit dem Database-Objekt die perfekte Hilfe an: Dieses Objekt lässt sich mit einem Verweis auf die aktuell geöffnete, aber auch auf andere Datenbanken füllen und erlaubt dann nicht nur den Zugriff auf ihre Eigenschaften, sondern stellt auch eine ganze Reihe Funktionen bereit. Dieser Artikel zeigt, wie Sie mit dem Database-Objekt auf die aktuell geöffnete und auch auf andere Datenbanken zugreifen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1110_DAO_Database.mdb.

Zugriff auf eine Datenbank

Warum sollte man überhaupt per VBA auf eine Datenbank und ihre Eigenschaften und Methoden zugreifen Ganz einfach: Weil früher oder später die Methoden der Benutzeroberfläche und von Formularen ohne Einsatz von VBA-Ereignisprozeduren dazu führen werden, dass Sie Abläufe in Ihrer Access-Datenbank automatisieren werden – und zwar mit VBA.

Dabei werden Sie auch auf Informationen etwa zur aktuell geöffneten Datenbank angewiesen sein, beispielsweise um den Pfad herauszufinden, in dem sich die aktuelle Datenbank befindet. Oder Sie gehen einen Schritt weiter und möchten gleich noch Daten aus einer der in der Datenbank gespeicherten Tabellen auslesen – dies geht jedoch einen Schritt weiter und wird in einem weiteren Artikel beschrieben (DAO-Recordsets öffnen und lesen).

Wenn Sie auf die aktuelle Datenbank zugreifen möchten, brauchen Sie einen Verweis beziehungsweise eine Referenz auf diese Datenbank. Die Datenbank wird durch ein Objekt der Bibliothek DAO repräsentiert: dem Database-Objekt. Dieses Objekt muss nicht zwangsläufig auf die aktuell geöffnete Datenbank verweisen, aber dies wird in den meisten Fällen so sein. Einen Verweis auf dieses Database-Objekt erhalten Sie mit einer speziellen Funktion der Access-Bibliothek namens CurrentDb.

Da CurrentDb einen Verweis auf ein Database-Objekt liefert, können Sie direkt über die Funktion auf das Database-Objekt zugreifen. Das bedeutet, dass Sie die Eigenschaften und Methoden des Database-Objekts nutzen können. öffnen Sie zum Beispiel das Direktfenster des VBA-Editors der aktuellen Datenbank mit Strg + G und tippen Sie die folgende Anweisung ein:

Debug.Print CurrentDb.Name

Bereits nach dem Eingeben des Punktes nach CurrentDb bietet IntelliSense eine Liste aller Eigenschaften und Methoden des mit der CurrentDb-Funktion gelieferten Database-Objekts an (siehe Bild 1). Nach Abschluss der Eingabe mit der Eingabetaste liefert die Name-Eigenschaft den kompletten Pfad mit Dateiname der aktuell geöffneten Datenbank, zum Beispiel:

Eigenschaften und Methoden des mit CurrentDb gelieferten Database-Objekts

Bild 1: Eigenschaften und Methoden des mit CurrentDb gelieferten Database-Objekts

C:\Daten\Fachartikel\AiUBasic\Basics\2011\09\DAO_Database\1109_DAO_Database.mdb

Verweis auf die aktuelle Datenbank speichern

Wenn Sie mehr als einen Aufruf mit der CurrentDb-Funktion absetzen möchten, speichern Sie den damit gewonnenen Verweis auf die Datenbank in einer Variablen, die Sie wie folgt deklarieren:

Dim db As DAO.Database

Im folgenden Beispiel deklarieren Sie das Objekt, füllen es mit der CurrentDb-Funktion, geben Pfad und Dateiname der Datenbank aus und leeren die Objektvariable db wieder:

Public Sub Database_Beispiele()
     Dim db As DAO.Database
     Set db = CurrentDb
     Debug.Print db.Name
     Set db = Nothing
End Sub

Wo jetzt die Debug.Print-Anweisung steht, können Sie beliebige weitere Zugriffe auf den in der Variablen db gespeicherten Verweis auf die aktuelle Datenbank absetzen.

Alle Tabellen auslesen

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar