Referenzen und Bibliotheken

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

André Minhorst, Duisburg

Microsoft Access bietet eigentlich alles, was das Datenbankentwicklerherz begehrt – zumindest solange, bis der Access-Entwickler einen Blick über den Tellerrand wagt und sieht, was mit Access noch alles möglich ist. Denn Access kann so ziemlich alle Anwendungen, auf deren Objektmodell es per VBA zugreifen kann, steuern und mit ihnen kommunizieren – ob mit Word, Excel, Outlook oder anderen Produkten. Und auch die Funktionalität anderer bestehender Datenbanken lässt sich unter Access durch das Setzen eines einfachen Verweises auf eine so genannte Bibliothek wieder verwenden. Im vorliegenden Beitrag erfahren Sie, was es mit diesen Bibliotheken auf sich hat, welche Möglichkeiten es zum Setzen von Verweisen gibt und wie Sie dabei entstehende Probleme elegant umschiffen können.

Access, Word, Excel, Outlook und viele andere Anwendungen, die übrigens nicht zwangsläufig aus Redmond stammen müssen, haben eines gemeinsam: Die Funktionalität dieser Anwendungen befindet sich in der Regel in einer oder mehreren Dynamic Link Libraries (DLLs), Objekt Libraries (OLBs), ActiveX Controls (OCX) oder Dateien ähnlichen Dateityps. Dabei beinhaltet jede dieser Dateien Funktionen zu einem bestimmten Anwendungsgebiet.

So hat z. B. Microsoft Word eine umfangreiche Bibliothek mit allen möglichen Funktionen zum Bearbeiten von Texten (MSWORD.OLB).

Hinweis

Auch Windows enthält einige DLLs, die Funktionen für Bereiche wie Benutzeroberfläche, Dateioperationen, Textausgaben etc. beinhalten. Der Begriff für die Gesamtheit dieser Bibliotheken lautet Application Programming Interface (API).

Sie können sowohl die Bibliotheken mit den Systemfunktionen von Windows als auch die Objektbibliotheken der unterschiedlichen Anwendungen mit Hilfe von VBA in Access verwenden.

Die Einbindung der beiden Bibliotheksarten unterscheidet sich jedoch grundlegend: Während Sie die Windows-Funktionen im Code zunächst deklarieren und anschließend per Funktionsaufruf verwenden können, bieten die Objektbibliotheken von Anwendungen wesentlich mehr Komfort:

Nach dem Einbinden der gewünschten Bibliothek durch Setzen eines entsprechenden Verweises können Sie die Objekte, Eigenschaften und Methoden des jeweiligen Objektmodells genauso verwenden wie die Objekte, die Sie bisher in Access verwendet haben.

Dabei basieren die Funktionen, die Sie tagtäglich bei der Entwicklung von Access-Datenbanken verwenden, genauso auf per Verweis eingebundene Objektbibliotheken. Unter Access sind standardmäßig die Bibliotheken Visual Basic For Applications, Microsoft Access x.0 Objekt Library und Microsoft DAO x.xx Object Library (Access 97) oder Microsoft ActiveX Data Objects 2.1 Library und OLE Automation (beide Access 2000 und höher) eingebunden.

Mit einem Verweis auf eine der Objektbibliotheken wie z. B. von Word (Microsoft Word x.0 Object Library) können Sie diese Anwendung komplett steuern.

Bibliothek für eigene Funktionen

Auch Access-Datenbanken können Sie als Bibliothek einsetzen: Wenn im Laufe Ihrer Arbeit mit Access z. B. eine umfangreiche Sammlung von Prozeduren oder Funktionen entstanden ist, haben Sie entweder bereits eine Datenbank mit den gesammelten Werken – oder Sie wünschen, dass Sie eine hätten.

Eine solche Sammlung hätte den Vorteil, dass Sie die Datenbank einfach in andere Datenbanken einbinden könnten und auf ihre Funktionen und Prozeduren zugreifen könnten, als wenn sie sich in der gleichen Datenbank befinden.

Mit einem kleinen Trick ist es sogar möglich, auch andere Objekte wie Formulare oder Berichte auf diese Weise verfügbar zu machen.

Der wesentliche Schritt für Access auf dem Weg vom Einzelkämpfer zum Teamplayer besteht im Anlegen eines geeigneten Verweises.

Verweis auf Objektbibliotheken

Sie verfügen über Microsoft Access und mindestens eine weitere Anwendung, die Sie gerne von Access aus steuern oder deren Funktion Sie in Access verwenden möchten

Dann fehlt nur noch ein Verweis auf die gewünschte Anwendung. Zum Setzen eines Verweises gehen Sie folgendermaßen vor:

  • Wechseln Sie in den VBA-Modus von Access. Dazu verwenden Sie beispielsweise die Tastenkombination Strg + G.
  • Wählen Sie im Menü Extras den Eintrag Verweise aus, um den gleichnamigen Dialog zu öffnen (siehe Bild 1).
  • Wählen Sie aus der Liste Verfügbare Verweise den gewünschten Verweis durch Setzen eines Häkchens aus.
  • Klicken Sie auf die Schaltfläche OK, um die Eingabe zu beenden. (
  • Bild 1: Dialog zum Setzen von Verweisen

    Wenn Sie hier beispielsweise den Eintrag Microsoft x.0 Object Library aktivieren, können Sie im VBA-Editor leicht auf die Objekte von Word zugreifen.

    Wie das funktioniert, sehen Sie, wenn Sie die Beispielprozedur aus Bild 2 eingeben. Der Editor bietet die Elemente der Objektbibliothek nach der Eingabe des Hauptobjekts Word zur Auswahl an.

    Bild 2: Das Word-Objektmodell im Einsatz

    Verweis auf andere Datenbanken

    Wenn Sie eine Datenbank mit einer Sammlung oft verwendeter Funktionen und Prozeduren Ihr Eigen nennen, können Sie diese auch in anderen Access-Datenbanken verfügbar machen.

    Dazu gehen Sie ähnlich wie beim Setzen eines herkömmlichen Verweises vor. Die Auswahl des Verweises selbst ist allerdings etwas aufwändiger: Da die Datenbank nicht als Objektbibliothek, DLL o. ä. registriert ist, müssen Sie die Datenbank selbst auswählen.

    Dazu klicken Sie im Dialog Verweise auf die Schaltfläche Durchsuchen… und wählen dort die entsprechende Bibliotheksdatenbank aus.

    Wenn eine Datenbankanwendung einen Verweis auf eine Bibliothek enthält und die referenzierte Datei aus irgendeinem Grund nicht an dem angegebenen Ort gefunden wird, versucht Access zunächst selbst, die Bibliothek an einem anderen Ort zu finden.

    Dabei bezieht Access die folgenden Verzeichnisse in die Suche ein:

  • das Verzeichnis, in dem Access installiert ist
  • die Verzeichnisse Windows und Windows\System
  • die in der Umgebungsvariablen Path angegebenen Verzeichnisse
  • benutzerdefinierte Verweispfade (s. Abschnitt 0)
  • Wenn Access die gesuchte Bibliothek dort immer noch nicht findet, erscheint eine entsprechende Fehlermeldung.

    Die Fehlermeldung kann zwei Ausprägungen annehmen: entweder es erscheint die Fehlermeldung aus Bild 4 oder eine Fehlermeldung mit dem Text Funktion steht in Ausdrücken nicht zur Verfügung. Letztere tritt oft in Zusammenhang mit eingebauten Access-Funktionen wie Links(), Rechts() oder Format() auf.

    Gründe für fehlerhafte Verweise

    Besonders häufig treten Probleme mit Verweisen auf, wenn Sie Access-Datenbanken in irgendeiner Weise – z. B. durch Weitergabe an Kunden etc. – auf einem anderen als dem Entwicklungsrechner verwenden. Dort können aus verschiedenen Gründen Probleme auftreten:

  • die Datei, auf die verwiesen wird, ist nicht vorhanden
  • die Datei liegt nicht in der benötigten Version vor
  • Erzeugen eines fehlerhaftenVerweises

    Sie können das Auftreten eines fehlerhaften Verweises folgendermaßen reproduzieren:

  • Legen Sie eine neue, leere Datenbank namens Bibliothek.mdb an.
  • Erstellen Sie ein neues Modul und legen Sie dort die Funktion aus Quellcode 1 an.
  • Speichern und schließen Sie die Datenbank.
  • öffnen Sie eine beliebige andere Datenbank und erstellen Sie einen Verweis auf die soeben angelegte Datenbank mit der Testfunktion. (
  • Function Test()
        MsgBox "Dies ist eine Funktion aus einer Bibliotheksdatenbank."
    End Function

    Quellcode 1

    Bild 3: Die eingebundene Bibliotheksdatenbank

    Abgesehen davon, dass die eingebundene Datenbank nun in der Liste der Verweise auftaucht (siehe Bild 3), macht sie sich nicht bemerkbar. Erst die Eingabe der Anweisung Test im Testfenster (zu aktivieren mit der Tastenkombination Strg + G) und das anschließend erscheinende Meldungsfenster beweisen die Funktionstüchtigkeit der eingebundenen Datei.

    Nun “stören” Sie den Verweis, indem Sie den Dateinamen der Datenbank Bibliothek.mdb ändern oder die Datei in ein anderes Verzeichnis kopieren.

    Hinweis

    Sie können den Speicherort oder den Dateinamen der eingebundenen Datenbank nicht verändern, wenn der Verweis aktiv ist. Das ist der Fall, wenn die verweisende Datenbank bereits irgendeine Funktion der Bibliotheksdatenbank aufgerufen hat.

    Wenn Sie nun die gewünschte Funktion aufrufen, erscheint eine entsprechende Fehlermeldung (siehe Bild 4).

    Bild 4: Diese Meldung kann auf einen ungültigen Verweis hinweisen.

    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