.NET-Klassen und Formulare in Access nutzen

Das .NET-Framework liefert eine Menge interessanter Klassen, die Sie unter Access gut gebrauchen können. Doch nicht nur das: In Form einer COM-DLL können Sie nicht nur Visual Basic 2008-Klassen, sondern auch damit erstellte Elemente der Benutzeroberfläche in Access-Anwendungen integrieren. Und das Beste ist: Das funktioniert auch mit der kostenlosen Express Edition von Visual Basic 2008.

Wenn Sie unter VBA schon einmal einen Verweis auf eine externe Bibliothek gesetzt und deren Methoden und Eigenschaften genutzt haben, kennen Sie zumindest schon einmal die andere Seite von dem, was Sie in den folgenden Abschnitten lernen. Dort erstellen Sie nämlich genau eine solche Bibliothek, die Sie von Access aus referenzieren und deren Funktionen Sie dort unter VBA nutzen können. Ãœblicherweise dürften Sie bisher – wenn überhaupt – auf die Klassenbibliotheken von Anwendungen wie Word, Excel oder Outlook zugegriffen haben, um diese Anwendungen zu automatisieren; vielleicht haben Sie auch schon mal eine Klasse eines Drittanbieters benutzt, um den Funktionsumfang einer Ihrer Datenbanken zu erweitern. Ein gutes Beispiel ist etwa eine Komponente, die eine Anwendung um Funktionen zum Versenden von E-Mails erweitert.

Warum nun sollten Sie selbst solche Klassen herstellen und von Access aus einsetzen Nun: Das .NET Framework 3.5 liefert eine unüberschaubare Menge an Klassen, die Sie auf diese Weise in Ihre Access-Anwendungen integrieren können.

Projekt erstellen

Der erste Schritt beim Bau einer DLL, die in Access als Verweis eingebunden werden kann, ist das Anlegen eines passenden Visual Basic-Projekts. Dies erledigen Sie in Visual Studio über den Menüeintrag Datei|Neues Projekt. Im folgenden Dialog namens Neues Projekt wählen Sie den Eintrag Klassenbibliothek aus und geben den Namen Ihrer Wahl an – beispielsweise AccessDLL. Um den Speicherpfad brauchen Sie sich noch nicht zu kümmern, den legen Sie später fest, wenn Sie sich entschlossen haben, dass dieses Projekt auch speichernswert ist.

Visual Studio empfängt Sie im Anschluss mit der leeren Klasse Class1, die es nun zu füllen gilt (s. Abb. 1). Zunächst aber geben Sie der Klasse einen sinnvolleren Namen wie etwa Beispielklasse. Dies erledigen Sie wahlweise im Projektmappen-Explorer oder im Eigenschaftsfenster – der Name im Codefenster ändert sich automatisch.

missing image file

Abb. 1: Visual Studio mit einer leeren VB-Klasse

Für einen ersten Funktionstest fügen Sie der Klasse einfach eine kleine Funktion hinzu, die nichts anderes erledigt, als beim Aufruf eine Zeichenkette zurückzuliefern. Die komplette Klasse sieht dann so aus:

Public Class Beispielklasse
Public Function Beispielfunktion() As String
    Beispielfunktion = "Funktioniert!"
End Function
End Class

Sie könnten die DLL nun durch den Menüeintrag Erstellen|AccessDLL erstellen erzeugen, aber das würde nichts nUtzen: Sie liefert keinerlei Informationen nach außen, die auf die enthaltenen Elemente – hier die Funktion Testfunktion – hinweisen. Dazu brauchte man eine .tlb-Datei, die sogenannte Type Library, die alle in der DLL enthaltenen Klassen und ihre Elemente auflistet und für das VBA-Projekt, in das sie eingebunden werden soll, bereitstellt. Bevor Sie dies erledigen, speichern Sie das Projekt mit Datei|Projekt schließen (s. Abb. 2).

missing image file

Abb. 2: Speichern des Projekts unter dem gewünschten Projektnamen

Anschließend sind drei zusätzliche Handgriffe nötig, von denen Sie zwei in der Entwicklungsumgebung und einen manuell durchführen müssen: Zunächst müssen Sie erreichen, dass Visual Studio neben den drei Dateien AccessDLL.dll, AccessDLL.pdb und AccessDLL.xml, die Sie nach dem Erstellen mit Erstellen|AccessDLL erstellen im Verzeichnis AccessDLL\\bin\\Release finden, noch eine zusätzliche Datei namens AccessDLL.tlb hinzufügt. Dabei hilft das Tool regasm.exe, das auch beim Registrieren der DLL auf anderen Rechnern nützliche Dienste leistet. Rufen Sie es auf, indem Sie folgende Anweisung beispielsweise im Ausführen…-Dialog oder in der Eingabeaufforderung von Windows eingeben:

<Pfad>\\regasm.exe <Pfad>\\<DLLName>.dll
/tlb

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar