C#-DLL in VB-Projekt nutzen

Einige Techniken werden von Microsoft erst für die Benutzung unter C# bereitgestellt. Das ist aktuell etwa der Fall für einige der Core-Produkte wie Entity Framework Core. Wenn Sie diese dennoch frühzeitig nutzen wollen, aber normalerweise mit Visual Basic arbeiten, können Sie das auf folgende Art erledigen: Sie bauen eine DLL auf Basis der Vorlage für C# und binden diese dann in das Visual Basic-Projekt, in dem Sie die Hauptarbeit verrichten. Auf die Objekte, Eigenschaften und Methoden der C#-Bibliothek können Sie dann einfach zugreifen.

SQLite Code First mit EF Core

Wir haben bereits einige Male SQLite als Datenbanksystem verwendet. Allerdings hatten wir damals jeweils eine Datenbank mit SQLite erstellt und dann ein Entity Data Model dafür erstellt. In den letzten Ausgaben haben wir uns jedoch in Zusammenhang mit SQL Server-Datenbanken mit Code First-Migrationen befasst, also den Aufbau der Datenbank durch Klassen beschrieben und dann erst die Datenbank erstellen lassen. Das wollen wir nun auch mit SQLite machen, was erstmals durch Entity Framework Core möglich ist. Allerdings sind dazu ein paar Schritte mehr nötig, als es mit dem SQL Server der Fall ist.
In einigen vorangehenden Artikeln haben wir gezeigt, wie Sie eine SQL Server-Datenbank auf Basis des Entity Data Models eines Projekts erstellen und unter einem Azure-Konto über eine Webseite veröffentlichen. In diesem Artikel wollen wir uns ansehen, wie Sie eine bestehende SQL Server-Datenbank ohne Entity Data Model als Azure-Datenbank anlegen. Auf diese Datenbank können Sie dann sowohl von Desktop-Anwendungen aus zugreifen als auch von PowerApps, die wir ebenfalls in dieser Ausgabe vorstellen.

EDM: m:n-Beziehungen per Code First

Genau wie 1:n-Beziehungen können Sie mit Code First auch m:n-Beziehungen abbilden. Wer denkt, dass dazu wie in Datenbanksystem eine Art Verknüpfungsklasse notwendig ist, hat Recht – diese ist aber nur in bestimmten Fällen notwendig. Welche das sind und wie Sie die verschiedenen Arten einer m:n-Beziehung unter Code First abbilden, erfahren Sie in diesem Artikel. Außerdem zeigen wir, welche Datenmodelle beim Migrieren der Klassen in ein Datenbanksystem entstehen.

Mehrere Felder gleichzeitig durchsuchen

Normalerweise legen ein Textfeld an, in das Sie einen Suchbegriff eingeben und die Daten dann in einem oder mehreren Feldern nach diesem Suchbegriff durchsuchen. Oder Sie haben mehrere Suchfelder etwa für Vorname, Nachname et cetera. Dieser Beitrag stellt ein Suchsteuerelement vor, mit dem Sie gezielt nach den Inhalten verschiedener Felder gleichzeitig suchen können. Dabei gibt es mehrere Vorlagen, die vorab festgelegt werden und die der Benutzer dann einstellt, um die Suchbegriffe einzugeben.
Im Beitrag »COM-Add-In für den VBA-Editor« haben wir uns zunächst darum gekümmert, überhaupt eine COM-DLL zu programmieren und diese so in die Registry einzutragen, dass sie beim Starten des VBA-Editors geladen wird und die dort angelegten Ereignisprozeduren ausgelöst wurden. Damit sind wir noch lange nicht fertig. Im vorliegenden Artikel schauen wir uns an, wie Sie dem VBA-Editor Menüeinträge für den Aufruf der im COM-Add-In enthaltenen Funktionen hinzufügen – und zwar für die Menüleiste, die Symbolleiste sowie für Kontextmenüs.
Der VBA-Editor hinkt Visual Studio um Lichtjahre hinterher. Doch es gibt gute Nachrichten: Mit einem COM-Add-In auf Basis von .NET können Sie auch den VBA-Editor noch um Funktionen erweitern. Das zeigen ja auch andere Werkzeugkästen wie etwa die MZ-Tools. Wir wollen in diesem Artikel einmal zeigen, wie Sie ein COM-Add-In in Visual Studio programmieren, das dann beim Öffnen des VBA-Editors zu seiner Erweiterung zur Verfügung steht.
Normalerweise verwenden Sie 1:n-Beziehungen, um die Datensätze zweier Tabellen zu verknüpfen und so Kombinationen aus diesen Datensätzen zu ermöglichen. Oder Sie nutzen die Beziehung für die Verknüpfung mit einer Lookup-Tabelle, welche die Werte für ein Feld liefert. Es geht aber noch anders: Wir wäre es, wenn Sie etwa für ein Feld, dass nur bestimmte Zahlenwerte annehmen können soll, auch eine per 1:n-Beziehung verknüpfte Tabelle hinterlegen? Dieser Beitrag zeigt, welchen praktischen Zweck dies hat und wie Sie dies umsetzen.
In den ersten beiden Teilen der Beitragsreihe haben wir gezeigt, wie Sie die Daten einer Tabelle in Form einer Kreuztabelle ausgeben können. Das ist natürlich auch per Kreuztabellenabfrage möglich, aber wir haben in diesem Fall das Webbrowser-Steuerelement mit einer entsprechenden HTML-Seite verwendet. Der Hintergrund ist, dass wir so Funktionen zum direkten Bearbeiten der Einträge hinzufügen können – vorausgesetzt, dass die Kreuztabelle nur die Werte einer Kombination anzeigt und nicht etwa Domänenfunktionen wie Summen oder Mittelwerte. Wir wollen also die bereits vorhandene Darstellung noch um Funktionen zum Bearbeiten sowie zum Hinzufügen neuer Spalten oder Zeilen erweitern.

Kombinationsfeld per Taste steuern

Kombinationsfelder enthalten viele Einträge, die Sie durch das Aufklappen des Kombinationsfeldes anzeigen und per Mausklick auswählen können. Wenn Sie mit der Tastatur arbeiten, müssen Sie das Kombinationsfeld erst mit der Taste F4 öffnen und dann mit der Nach oben- oder der Nach unten-Taste den gewünschten Eintrag auswählen, den Sie dann durch Verlassen des Steuerelements bestätigen. Das geht auch einfacher, nämlich mit den beiden Tasten »Nach oben« und »Nach unten«. Es bedarf allerdings einiger Zeilen VBA-Code, die wir in diesem Beitrag vorstellen.
Für den Zugriff auf die Daten einer SQL Server-Datenbank gibt es mehrere Methoden. Die erste ist das Einbinden der Tabellen per ODBC. Sie greifen dann – oberflächlich betrachtet – genau wie auf lokale Daten zu. Die andere, performantere und auch für den Mehrbenutzerbetrieb effizientere Variante, ist der Zugriff über Pass-Through-Abfragen auf gespeicherte Prozeduren. Gespeicherte Prozeduren sind Skripte, die Anweisungen auf dem SQL Server ausgeben und die ihre Ergebnisse, also zum Beispiel gefundene Datensätze, zurückgeben können. Zugriff auf solche gespeicherten Prozeduren erhalten Sie über die Nutzung sogenannter Pass-Through-Abfragen. Wie Sie die gespeicherte Abfragen und Pass-Through-Abfragen kombinieren, um Daten vom SQL Server in Ihre Access-Datenbank zu bekommen, zeigt dieser Beitrag.

EDM: DataGrid als Datenblatt

Wer von Access kommt und Datenbankanwendungen mit Visual Studio programmieren möchte, vermisst vermutlich das einfache Datenblatt, das man unter Access mit wenigen Mausklicks zusammenstellen konnte. Dieses zeigt nicht nur die Datensätze der als Datenherkunft verwendeten Tabelle oder Abfrage an, sondern bietet auch die Möglichkeit, die enthaltenen Daten zu ändern, zu löschen oder durch neue Datensätze zu ergänzen. Dies wollen wir in diesem Artikel durch den Einsatz eines entsprechend programmierten DataGrid-Steuerelements nachbauen.
2 von 27
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]