Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.
VB.NET-DLL für Access programmieren
Visual Studio bietet viel mehr Bibliotheken und Möglichkeiten als Access. Dafür ist es auch viel komplizierter. Zum Glück können wir beide Welten kombinieren, zum Beispiel durch Erstellen einer DLL mit Visual Studio, die Funktionen bereitstellt, die nur unter .NET zur Verfügung stehen, die Sie dann von Access aus per VBA referenzieren und nutzen können. Dieser Beitrag zeigt anhand eines Beispiels, wie das gelingt.
Ohne Probleme möglich wird dies dadurch, dass Sie sich die Community Edition von Visual Studio, beispielsweise in der Version 2017, kostenlos herunterladen und diese nutzen können. Den Download finden Sie, wenn Sie bei Google nach Visual Studio 2017 Community suchen.
Nach dem Installieren und Starten von Visual Studio öffnen Sie über den Menüeintrag Datei|Neu|Projekt... den Dialog zum Erstellen eines neuen Projekts. Hier wählen Sie links den Eintrag Installiert|Visual Basic|Windows Desktop aus und in der Mitte dann Klassenbibliothek (.NET Framework) – siehe Bild 1. Geben Sie den Namen des Projekts ein, hier CMD, und wählen Sie den Ordner aus, in dem das Projektverzeichnis erstellt werden soll.
Bild 1: Erstellen einer Klassenbibliothek
DLL als Administrator erstellen
Ein Hinweis vorab: Wenn Sie die DLL erstellen möchten, müssen Sie Visual Studio als Administrator öffnen. Dazu geben Sie beispielsweise Visual Studio im Suchfeld von Windows ein, warten, bis der Eintrag Visual Studio 2017 auftaucht, klicken dann mit der rechten Maustaste auf diesen Eintrag und wählen aus dem nun erscheinenden Kontextmenü den Befehl Als Administrator ausführen aus. Mit einer so gestarteten Instanz von Visual Studio können Sie nun auch DLLs auf dem aktuellen Rechner erstellen und registrieren.
Visual Studio empfängt Sie nun mit der im Codefenster geöffneten Klasse Class1. Sie können hier nun erste Methoden eintragen.
Unser Ziel ist es, eine DLL zu erstellen, die Methoden einer Bibliothek, die nur unter .NET, nicht aber unter VBA zur Verfügung steht. Zu Testzwecken wollen wir zuerst einmal nur eine einfache Funktion über die DLL in VBA bereitstellen, welche nach dem Aufruf eine einfache Meldung anzeigt.
Wir ändern nun erst einmal den Namen der zu verwendenden Klasse, indem wir Class1.vb im Projektmappen-Explorer in CMD.vb umbenennen. Dazu klicken Sie diesen Eintrag im Projektmappen-Explorer mit der rechten Maustaste an und wählen dann den Befehl Umbenennen... aus dem Kontextmenü aus. Geben Sie den neuen Namen ein und bestätigen Sie auch die nun erscheinende Meldung, wodurch Sie alle Verweise auf den vorherigen Namen auf den neuen Namen ändern (siehe Bild 2). In diesem Fall wird auch beispielsweise der Name der Klasse im Klassenmodul angepasst:
Bild 2: Umbenennen aller Verweise entsprechen des neuen Elementnamens
Public Class CMD
End Class
Einfache Meldung ausgeben
Um eine einfache Meldung auszugeben, nachdem die entsprechende Methode der Klasse aufgerufen wurde, legen Sie zunächst die gewünschte Sub-Methode an:
Public Class CMD
Public Sub MeldungAusgeben()
End Sub
End Class
Nun heißt der Befehl zum Ausgeben eines Meldungsfensters unter VB.NET etwas anders als unter VBA, also nicht MsgBox. Stattdessen verwendet man unter VB.NET die Methode Show der Klasse MessageBox. Diese wiederum ist in DLL-Klassen nicht standardmäßig als Verweis eingebunden, was wir allerdings schnell nachholen können.
Verweis auf Bibliothek hinzufügen
Dazu rufen Sie mit dem Menübefehl Projekt|Verweis hinzufügen... den Dialog Verweis-Manager auf. Hier klicken Sie links auf Assemblys. Rechts oben im Suchfenster können Sie etwa System.Windows eintippen. Die Einträge werden nach jedem Zeichen aktualisiert, sodass Sie schon bald den Eintrag System.Windows.Forms in der Liste entdecken. Diesen markieren Sie durch einen Haken und schließen den Dialog mit einem Klick auf die Schaltfläche OK (siehe Bild 3).
Bild 3: Hinzufügen eines Verweises für die MessageBox-KlasseDiese Bibliothek machen wir nun in unserer Klasse verfügbar, indem wir diese mit der Imports-Anweisung ganz oben einfügen:
Imports System.Windows.Forms
Die Methode MeldungAusgeben erweitern wir nun um den Aufruf der Show-Methode der MessageBox-Klasse:
Public Class CMD
Public Sub MeldungAusgeben()
MessageBox.Show("Dies ist eine Meldung von einer VB-DLL.")
End Sub
Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.