VBA-Projekt per VBA referenzieren

Access bietet nicht nur die Möglichkeit, Tabellen, Abfragen, Formulare und Berichte per VBA-Code zu erstellen. Sie können auch die Elemente, die Sie im VBA-Editor bearbeiten, per VBA erstellen, bearbeiten und wieder löschen. Dieser Beitrag macht den Start in eine Beitragsreihe, die sich mit den Möglichkeiten zur Programmierung des VBA-Editors und von VBA-Code beschäftigen. In diesem Teil schauen wir uns an, wie Sie überhaupt VBA-Projekte mit VBA referenzieren.

Voraussetzung: Extensibility-Verweis

Wenn Sie Routinen erschaffen wollen, mit denen Sie wiederum VBA-Elemente und -Code manipulieren möchten, benötigen Sie einen Verweis auf die Bibliothek Microsoft Visual Basic for Applications Extensibility 5.3 Object Library.

Diesen fügen Sie im VBA-Editor mit dem Verweise-Dialog hinzu, den Sie mit dem Menübefehl Extras|Verweise öffnen (siehe Bild 1).

Verweis auf die Extensibility-Bibliothek

Bild 1: Verweis auf die Extensibility-Bibliothek

Access-Datenbank und VBA-Projekt

Eines der praktischen Dinge an Access ist, dass sowohl die Daten als auch die Elemente der Benutzeroberfläche und die Anwendungslogik normalerweise in einer einzigen Datei stecken. Natürlich gibt es Ausnahmen, wo die Tabellen in eine Backend-Access-Datei ausgelagert wurden oder wo die Tabellen Teil einer SQL Server-Datenbank sind. Und es gibt auch noch die Möglichkeit, dass Sie in einer Datenbankanwendung Elemente aus anderen Datenbankdateien nutzen – zum Beispiel, wenn Sie VBA-Code in eine Bibliotheksdatenbank auslagern.

Was jedoch immer garantiert ist, dass eine Access-Datenbankdatei auch ein VBA-Projekt enthält. Das VBA-Projekt speichert dabei die Module und Klassenmodule der Datenbankanwendung, wobei es zwei Typen von Klassenmodulen gibt – alleinstehende oder solche, die zu einem Formular oder einem Bericht gehören.

Derweil muss nicht jedes Formular und jeder Bericht ein Klassenmodul enthalten. Ein Klassenmodul zu einem Formular oder Bericht wird von Access erst durch eine der beiden folgenden Aktionen angelegt:

  • wenn Sie die Eigenschaft Enthält Modul des Formulars oder Berichts auf Ja einstellen oder
  • wenn Sie für das Formular oder den Bericht oder ein darin enthaltenes Steuerelement eine Ereignisprozedur definieren.

Aktuelles VBA-Projekt referenzieren

Um das aktuelle VBA-Projekt zu referenzieren, bedarf es keiner besonderen Tricks. Wir nutzen dazu die folgende Technik, nachdem wir den Namen unseres Beispielprojekts auf prjVBAEditorProgrammieren eingestellt haben.

Das erledigen Sie über den Eigenschaften-Bereich, während Sie im Projektexplorer den Eintrag für das Projekt der aktuellen Datenbank markiert haben (siehe Bild 2).

Ändern des Namens des VBA-Projekts

Bild 2: Ändern des Namens des VBA-Projekts

Danach probieren Sie den folgenden Code aus:

Public Sub VBProjectReferenzieren()
     Dim objVBProject As VBProject
     Set objVBProject = VBE.ActiveVBProject
     Debug.Print objVBProject.Name
End Sub

Die Prozedur deklariert eine Variable des Typs VBProject und füllt diese mit der Eigenschaft ActiveVBProject der Klasse VBE. Die Klasse VBE ist das oberste Element der Bibliothek zur Programmierung des Visual Basic Editors.

Nachdem wir die Variable objVBProject gefüllt haben, können wir damit beispielsweise auf den Namen des Projekts zugreifen. Diesen gibt die Prozedur im vorliegenden Fall wie in Bild 3 aus.

Ausgabe des Namens des VBA-Projekts

Bild 3: Ausgabe des Namens des VBA-Projekts

Mehrere VBA-Projekte im VBA-Editor

Aber referenzieren wir mit der Eigenschaft ActiveVBProject auch tatsächlich immer das VBProject-Objekt der aktuellen Datenbank

Nein, das ist nicht sichergestellt. Um das zu reproduzieren, wechseln Sie einmal zum Access-Fenster und legen ein neues, leeres Formular in der Entwurfsansicht an. Dann klappen Sie im Ribbon unter Entwurf|Steuerelemente die Liste der Steuerelemente auf und aktivieren dort die Option Steuerelement-Assistent verwenden (siehe Bild 4).

Aktivieren des Steuerelement-Assistenten

Bild 4: Aktivieren des Steuerelement-Assistenten

Danach fügen Sie beispielsweise eine neue Schaltfläche hinzu, was den dazugehörigen Assistenten aktiviert. Das war es schon auf der Access-Seite – Sie können den Assistenten nun abbrechen und wieder zum VBA-Editor wechseln.


Nur für Abonnenten

Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.

Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.

So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.

Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.

Bereits Abonnent? Hier einloggen


Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →

Schreibe einen Kommentar