VB.NET-DLL für Access programmieren

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.

Erstellen einer Klassenbibliothek

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:

Umbenennen aller Verweise entsprechen des neuen Elementnamens

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).

Hinzufügen eines Verweises für die MessageBox-Klasse

Bild 3: Hinzufügen eines Verweises für die MessageBox-Klasse

Diese 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.

Bitte geben Sie die Zahlenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Aktuell im Blog
Onlinebanking mit Access

Es ist geschafft: Endlich ist das Buch Onlinebanking mit Access fertiggeschrieben. Das war... [mehr]

Direktzugriff auf Tabellen und Felder

Die IntelliSense-Erweiterung für Tabellen und Felder hat mir soviel Spaß gemacht, dass ich gleich... [mehr]

IntelliSense für Tabellen und Felder

Wenn Sie mit dem VBA-Editor arbeiten und dort gelegentlich SQL-Anweisungen eingeben, müssen Sie... [mehr]

Download Access und SQL Server

Erfahren Sie, welche Schritte zum Download des aktuellen Stands des Buchs "Access und SQL Server"... [mehr]

Bilder in Access 2013

Wer die Bibliothek mdlOGL0710 von Sascha Trowitzsch oder ein ähnliches Modul aus meinen... [mehr]

Dynamische Ribbons

Immer wieder fragen Leser, wie man Ribbon-Elemente wie etwa Schaltflächen in Abhängigkeit... [mehr]

Die Blogmaschine

Einen kleinen Blog zusätzlich zum Shop zu betreiben ist eine tolle Sache. Hier lassen sich... [mehr]

Wegwerfadressen für die Newsletteranmeldung

Die Verwendung von Wegwerf-Adressen für die Nutzung aller möglichen Online-Dienste nimmt... [mehr]

Access und Facebook

Facebook und Access - das ist eine der wenigen Kombinationen, die ich noch nicht in die Mangel... [mehr]

Access und SQL Server - das Projekt

Mein neues Buch Access und SQL Server (gemeinsam mit Bernd Jungbluth) geht in die Endphase. Wer... [mehr]