Northwind 2.0 Starter Edition: eine kurze Einführung in VBA

Gilt für
Access für Microsoft 365 Access 2021 Access 2019

In den folgenden Abschnitten finden Sie nützliche Informationen zu VBA. Die Objektnamen werden bereitgestellt, damit Sie sie in der Northwind 2.0 Starter Edition-Datenbank leicht überprüfen können.

VBA

VBA (Visual Basic for Applications) ist die Programmiersprache, die in allen Microsoft 365-Produkten verwendet wird, nicht nur in Access. Sie ist hauptsächlich hier dokumentiert: Access-Entwicklerdokumentation. Informationen zu den ersten Schritten finden Sie unter Einführung in die Access-Programmierung.

Achten Sie bei der Suche nach Informationen darauf, nach Access-spezifischen Beispielen zu suchen, und schließen Sie Microsoft Access in den Suchbegriff ein. Häufig funktionieren Lösungen für die anderen Microsoft 365-Produkte, erfordern jedoch möglicherweise Änderungen.

Microsoft Access ist ein ausgereiftes Produkt. Das bedeutet, dass es viele Beispiele gibt, was für Sie großartig ist. Dies bedeutet auch, dass ältere Bücher über Access-Programmierung für Sie immer noch brauchbar sind. Viele der älteren Bücher sind immer noch auf gebrauchten Buchseiten zu einem Bruchteil ihrer ursprünglichen Kosten erhältlich. 

Vertrauenswürdige Speicherorte und aktivierte Inhalte

Microsoft Access-Dateien sind Microsoft 365-Dateien. Microsoft 365-Dateien müssen sich an einem vertrauenswürdigen Speicherort befinden oder ihr Inhalt muss aktiviert sein. Diese Gegenstände gelten als sicher, weil Sie sie erstellt haben oder weil sie aus einer vertrauenswürdigen Quelle stammen. Diese Überprüfung erfolgt jedes Mal, wenn Sie eine Microsoft 365-Datei öffnen. Wir werden dies von hier an als vertrauenswürdig/aktiviert bezeichnen. Wenn eine neue Version der Anwendung veröffentlicht und von einem nicht vertrauenswürdigen Speicherort aus geöffnet wird, wird der Prozess zum Aktivieren des Inhalts wiederholt. Weitere Informationen finden Sie unter Vertrauenswürdige Speicherorte für Microsoft 365-Dateien, Entscheiden, ob einer Datenbank vertraut werden soll und Hinzufügen, Entfernen oder Ändern eines vertrauenswürdigen Speicherorts in Microsoft 365.

Makros, Funktionen und Unterprozeduren

Makros, Funktionen und Unterprozeduren sind die Art und Weise, wie Sie Geschäftslogik in Ihre Access-Datenbank implementieren.

Steuerelemente in einem Formular (z. B. Schaltflächen, Textfelder, Beschriftungen usw.) können ihre Ereignisse (z. B. das Klicken auf das Steuerelement) verwenden, um andere Prozesse auszulösen, z. B. das Hinzufügen, Löschen von Datensätzen oder das Öffnen von Formularen. Diese Prozesse können mithilfe von Makros oder VBA implementiert werden. Northwind verwendet hauptsächlich Makros und etwas VBA. Weitere Informationen finden Sie unter RunCode-Makroaktion.

Einige Steuerelementtypen verfügen über integrierte Assistenten, die automatisch ein Makro erstellen. Wenn Sie beispielsweise eine Befehlsschaltfläche zu einem Formular hinzufügen, wird ein Assistent geöffnet, der mehrere Funktionalitätsoptionen für die Schaltfläche bietet. Durch Hinzufügen eines Kombinationsfelds wird ein Assistent geöffnet, der so konfiguriert werden kann, dass er einen bestimmten Datensatz im Formular sucht.

Der Navigationsbereich ist die wichtigste Methode, mit der Sie alle Ihre Datenbankobjekte anzeigen und darauf zugreifen, und er wird standardmäßig auf der linken Seite des Access-Fensters angezeigt. Der Navigationsbereich für die Northwind 2.0 Starter Edition wurde angepasst. Wir haben eine benutzerdefinierte Kategorie namens "Northwind Starter 2.0" erstellt. Auf diese Weise können wir die Objekte nach Funktionsbereichen organisieren. Weitere Informationen finden Sie unter Anpassen des Navigationsbereichs.

Umfang und Sichtbarkeit

Es ist wichtig, dass Sie sich über den Umfang und die Sichtbarkeit in Access und Microsoft 365 informieren. Der Bereich bezieht sich auf die Verfügbarkeit einer Variablen, Konstante oder Prozedur zur Verwendung durch eine andere Prozedur. Es gibt drei Bereichsebenen: Prozedurebene, private Modulebene und öffentliche Modulebene. Sie bestimmen den Gültigkeitsbereich einer Variablen, wenn Sie sie deklarieren. Es empfiehlt sich, alle Variablen explizit zu deklarieren, um Namenskonfliktfehler zwischen Variablen mit unterschiedlichen Gültigkeitsbereichen zu vermeiden. Alle Module verfügen über zwei Direktivenanweisungen: Option Compare Database und Option Explicit.  Weitere Informationen finden Sie unter Umfang und Sichtbarkeit verstehen, Öffentliche Anweisung, Private Anweisung, statische Erklärung und Grundlegendes zur Lebensdauer von Variablen

Persistente Variablen

Manchmal muss eine Variable vorhanden sein, nachdem das Objekt, das sie erstellt hat, den Gültigkeitsbereich verlassen hat. Dafür gibt es drei Hauptmethoden: Öffentliche Variablen, TempVars und das Speichern der Werte in einer lokalen Tabelle. Jeder dieser Vor- und Nachteile hat Vor- und Nachteile. Viele Entwickler verwenden eine Mischung aus diesen Beiträgen.

Öffentliche Variablen und TempVars sind für die aktuelle Sitzung vorhanden und verlassen den Gültigkeitsbereich, wenn die Anwendung geschlossen wird. Was ist, wenn Sie benutzerspezifische Variablen über ihre Sitzungen hinweg beibehalten möchten? Sie können diese Wertetypen in einer lokalen Tabelle speichern. In Northwind 2.0 Starter Edition haben wir diese Werte in einer Tabelle namens SystemSettings. Ein Wert in der Tabelle lautet beispielsweise "ShowWelcome". Dieser Wert gibt an, ob Sie bei jeder Anmeldung den Willkommensbildschirm sehen möchten oder nicht.

Fehlerbehandlung

Wenn Sie zuvor in Access integrierte Steuerelement-Assistenten verwendet haben, wissen Sie, dass bei der Erstellung eines Makros häufig keine Fehlerbehandlung auftritt und VBA erstellt wird, kann es auf eine MsgBox-Funktion, Err.Description-Stil beschränkt sein.

In Northwind 2.0 Starter Edition haben wir einen so genannten globalen Fehlerhandler implementiert. Fehler, die in einer Prozedur auftreten, rufen eine Funktion auf globaler Ebene auf, um den Fehler anzuzeigen. Der große Vorteil ist, dass der Code konsistent ist, und wenn die Nachricht geändert werden muss, z. B. um die Fehlernummer anzuzeigen oder den Fehler in einer Datei zu protokollieren, kann dies nur an einem Ort geschehen.

clsErrorHandler ist das Klassenmodul, das den Fehlerbehandlungscode implementiert. Ein Klassenmodul hält alle Haupt- und Hilfsfunktionen in einer Einheit zusammen, wodurch der Code stärker gekapselt wird. Das AutoExec-Makro ruft schließlich die Startup-Funktion in modStartup auf, erstellt eine Instance von clsErrorHandler und speichert sie als globale Variable, damit sie in der gesamten Anwendung verwendet werden kann.

Tatsächlich ist der Fehlerbehandlungscode in den Prozeduren so konsistent, dass wir alles in weniger als fünf Minuten mit einem schicken VBA-Code erstellen konnten, der jede Prozedur mit dem richtigen Fehlerhandler ausstattete. Dieser Code ist nicht in der Vorlage enthalten.

Siehe auch

Northwind 2.0 Starter Edition