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.
Access-Add-In mit VSTO
Access-Add-Ins können Sie mit Access selbst erstellen oder aber auch mit Visual Studio, zum Beispiel in der kostenlosen Visual Studio 2015 Community Edition. Dieser Beitrag zeigt, wie Sie ein Access-Add-In mit Visual Studio erstellen und was dabei zu beachten ist. Dabei legen wir vor allem ein Augenmerk darauf, wie Sie dem Fehlen einer Vorlage zum Erstellen von Access-Add-Ins begegnen und ein Add-In für eine andere Office-Anwendung nutzen, um ein Access-Add-In zu programmieren.
Voraussetzungen
Die erste Voraussetzung ist das Vorhandensein von Visual Studio Community Edition 2015, welches Sie nach Eingabe des Namens als Suchbegriff bei Google schnell finden sollten. Dieses kommt aber in der Regel nicht direkt mit den Office Developer Tools. Diese finden Sie ebenfalls am besten, wenn Sie bei Google die Suchbegriffe Office Developer Tools eingeben. Ein guter Startpunkt ist zum Zeitpunkt der Veröffentlichung dieses Beitrags aber auch diese Adresse:
https://blogs.msdn.microsoft.com/visualstudio/2015/11/23/latest-microsoft-office-developer-tools-for-visual-studio-2015/
Sie müssen also zuerst Visual Studio 2015 Community Edition installieren und dann die aktuellsten Erweiterungen herunterladen. Danach sollten Sie, wenn Sie Visual Studio starten und ein neues Projekt anlegen, die Vorlagen wie in Bild 1 finden.
Bild 1: Keine Vorlage für ein Access-Add-In
Add-In für Access
Wer weiß, dass die Elemente in alphabetischer Reihenfolge aufgelistet werden, und sieht, dass Excel 2013 und 2016 VSTO-Add-In der erste Eintrag ist, erkennt schnell: Es gibt keine Vorlage für Add-Ins, die mit Access arbeiten. Aber das ist kein Problem: Wir starten einfach mit einem anderen Add-In-Typ, beispielsweise für Microsoft Excel, und passen das daraus generierte Projekt dann für den Einsatz in Access an.
Start mit Excel statt mit Access
Sie erstellen also zunächst ein neues Projekt auf Basis der Vorlage Visual C# (oder Visual Basic)|Office/SharePoint|VSTO-Add-Ins|Excel 2013 und 2016 VSTO-Add-In. Geben Sie dabei den Projektnamen an, in unserem Beispiel schlicht AccessAddIn.
Nach einem Klick auf OK erstellt Visual Studio das Projekt.
Add-In in Excel testen
Wir wollen das Add-In, das wir ja nun erstellt, aber noch nicht für den Einsatz in Access angepasst haben, zunächst einmal auf seine Tauglichkeit unter Excel testen. Dazu klicken Sie in Visual Studio einfach auf F5 und führen das Add-In so aus. Das Resultat ist ernüchternd, denn wir erhalten direkt eine Fehlermeldung wie in Bild 2.
Bild 2: Fehler beim Start des Excel-Add-Ins
Um dieses erste Problem zu beheben, schließen Sie Excel und öffnen es das nächste Mal als Administrator. Dazu geben Sie Excel in das Suchen-Feld von Windows ein, klicken mit der rechten Maustaste auf den Eintrag Excel 2016 und wählen aus dem Kontextmenü den Eintrag Als Administrator ausführen aus (s. Bild 3).
Bild 3: Excel als Administrator startenNach dem Öffnen von Excel und dem Erstellen oder Laden einer Datei öffnen Sie über den Backstage-Bereich die Excel-Optionen und wechseln dort zum Bereich Menüband anpassen. Hier aktivieren Sie nun die Hauptregisterkarte Entwicklertools (s. Bild 4).
Bild 4: Entwicklertools aktivierenDies fügt dem Ribbon von Excel einen neuen Reiter namens Entwicklertools hinzu. In diesem finden Sie eine Schaltfläche namens COM-Add-Ins. Wenn Sie diese anklicken, öffnet sich die Liste der aktuell aktiverten Add-Ins. Ganz oben sehen Sie bereits den Eintrag AccessAddIn für unser soeben erstelltes Add-In. Ganz unten sollten Sie den Eintrag Visual Studio Tools for Office Design-Time Adaptor for Excel sehen. Diesen Eintrag müssen Sie deaktivieren, um den Fehler beim Aufruf von GetCustomUI() zu beheben (s. Bild 5).
Bild 5: Fehler durch GetCustomUI behebenBevor wir uns nun an die Arbeit machen, das Add-In für den Einsatz mit Access umzurüsten, wollen wir zumindest noch eine Ribbon-Schaltfläche hinzufügen, welche ein Meldungsfenster anzeigt. Damit stellen wir sicher, dass das Add-In grundsätzlich funktioniert. Es wäre schade, wenn wir nun erst die ganzen Schritte für die Anpassung als Access-Add-In durchführen und dann, wenn es nicht funktionieren sollte, nicht wissen, wo der Fehler zu suchen ist.
Sobald Sie Excel nun schließen und erneut starten, erscheint die Fehlermeldung nicht mehr.
Ribbon hinzufügen
Nun wollen wir den Code zur Erstellung eines Ribbons zu unserem Add-In hinzufügen. Dazu erstellen Sie in Visual Studio eine neue Klasse, indem Sie den Kontextmenü-Eintrag des Projekts AccessAddIn aus dem Projektmappen-Explorer namens Hinzufügen|Neues Element... anklicken. Es erscheint der Dialog aus Bild 6, mit dem Sie ein Element des Typs Menüband (Visueller Designer) namens AddInRibbon.cs hinzufügen.
Bild 6: Hinzufügen eines RibbonsEs erscheint die Ansicht aus Bild 7, mit der Sie die Ribbon-Steuerelemente aus der Toolbox an die gewünschten Stellen im Ribbon einfügen können. Nun bedarf es einiger Erläuterungen, was es mit dem Element TabAddIns (Integriert) auf sich hat. Eines steht jedoch fest: Durch das einfache Hinzufügen eines Ribbons ändert sich noch nichts, beim nächsten Debuggen/Starten des Add-Ins per F5 öffnet sich zwar Excel, aber es erscheinen keine zusätzlichen Elemente im Ribbon.
Bild 7: Bearbeiten des RibbbonsSchaltfläche zum Ribbon hinzufügen
Wir fügen nun zunächst eine Schaltfläche zum Ribbon hinzu, indem wir ein Button-Element aus der Toolbox in den Bereich group1 ziehen. Die Beschriftung beider Elemente, also der Gruppe und der Schaltfläche, passen wir nun an.
Dazu klicken Sie auf das Element, in Bild 8 zum Beispiel auf das Button-Element, und stellen im Eigenschaften-Bereich die Eigenschaft Label auf den gewünschten Wert ein, in diesem Fall Test. Im gleichen Zug können Sie die Eigenschaft Name auf den Wert btnTest ändern. Für das Group-Element stellen Sie Label auf Beispielgruppe und Name auf grpBeispiel ein.
Bild 8: Bezeichnung der Schaltfläche ändernNun fügen wir noch eine Ereignisprozedur zur Schaltfläche hinzu. Das Klassenmodul mit dem Code für das Ribbon-Objekt öffnen Sie, indem Sie aus dem Kontextmenü der Schaltfläche den Eintrag Code anzeigen auswählen (s. Bild 9). Dieser enthält jedoch noch keine Ereignisprozedur für die Schaltfläche btnTest. Diese legen Sie am einfachsten an, indem Sie in der Entwurfsansicht doppelt auf die Schaltfläche klicken.
Bild 9: Anzeigen der Ereignisprozedur der SchaltflächeSollte nun nicht automatisch die Klasse hinter dem Ribbon-Element erscheinen, können Sie diese wiederum über den Kontextmenü-Befehl Code anzeigen oder die Taste F7 öffnen. Dieses Klassenmodul enthält nun eine Methode namens btnText_Click. Wir wollen dieser ein einfaches Meldungsfenster hinzufügen, wozu zwei Schritte nötig sind. Als Erstes fügen Sie der Klasse oben mit der using-Anweisung einen Verweis auf das Namespace System.Windows.Forms hinzu:
using System.Windows.Forms;
Die C#-Methode füllen wir dann mit einem einfachen Aufruf der Show-Methode der MessageBox-Klasse (s. Bild 10):
Bild 10: Hinzufügen einer MessageBox zur Schaltflächeprivate void btnTest_Click(object sender, RibbonControlEventArgs e) {
MessageBox.Show("Schaltfläche angeklickt.");
}
Wenn Sie nun das Add-In per F5 starten/debuggen, wird Excel geöffnet, aber auf den ersten Blick ist kein neuer Eintrag zu erkennen. Dieser erscheint erst, wenn Sie nun auf den Tab Add-Ins klicken. Dort finden Sie dann neben der Gruppe Benutzerdefinierte Symbolleisten unsere selbst definierte Gruppe namens Beispielgruppe und die Schaltfläche Test. Klicken Sie diese an, taucht auch prompt die von uns programmierte Meldung auf (s. Bild 11).
Bild 11: Die neu hinzugefügte Add-In-Schaltlfäche
Wechsel zu Access
Nun gehen wir einen Schritt weiter und wollen das Add-In so anpassen, dass es nicht unter Excel, sondern unter Access geöffnet wird. Dazu sind einige Änderungen nötig, die wir teilweise im Text-Editor Ihrer Wahl durchführen müssen, weil die entsprechenden Dateien nicht in Visual Studio geöffnet werden können.
Schritt 1: Verweis auf die Access-Bibliothek
Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.