E-Book, Deutsch, 1199 Seiten
Doberenz / Gewinnus Access programmieren
1. Auflage 2016
ISBN: 978-3-446-45149-0
Verlag: Carl Hanser
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Grundlagen und Praxiswissen. Für die Versionen 2010, 2013 und 2016
E-Book, Deutsch, 1199 Seiten
ISBN: 978-3-446-45149-0
Verlag: Carl Hanser
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Von den VBA-Grundlagen über fortgeschrittene Datenbankprogrammierung bis zur Anbindung von SQL Server und dem Einsatz in der Cloud bietet Ihnen dieses Handbuch umfassendes Wissen zur Datenbankprogrammierung für die Access-Versionen 2010 bis 2016.
Grundlagen und Praxiswissen
Einsteiger mit Vorkenntnissen erhalten im ersten Teil eine fundierte Einführung in die Datenbankprogrammierung mit Access unter Verwendung von Makros und VBA.
Für fortgeschrittene Programmierer werden im Hauptteil zahlreiche Problemlösungen und universell einsetzbaren Routinen vorgestellt. Dabei lernen Sie unter anderem, wie Sie die Benutzerschnittstelle gestalten und auf die Daten mit verschiedenen Techniken zugreifen.
Aus dem Inhalt
•Programmieren mit VBA
•Einführung in die Makroprogrammierung
•Programmierung von Formularen und Steuerelementen
•Datenbankberichte und Druckersteuerung
•Datenbankzugriff mit DAO und ADO
•Fortgeschrittene Datenbankprogrammierung (DAO, ADOX, ODBC)
•Microsoft SQL Server (SMO, SQL)
•Zugriff auf Azure SQL und SQLite
•Programmschnittstellen (API-Zugriff, DDE, OLE, DLL und .NET)
•Arbeit mit Dateien, XML und SQL
•Entwickeln von Assistenten und Managed Add-Ins
•Programmieren des Menübands (Ribbon)
Die erforderlichen theoretischen Grundlagen werden klar und verständlich vermittelt; bei der Auswahl der besprochenen Beispiele und Konzepte steht immer der praktische Nutzen im Vordergrund; Tipps und Tricks helfen bei der täglichen Arbeit.
•Auf der Website zum Buch finden Sie alle Codebeispiele
•E-Book inside: Mit Ihrem persönlichen Code können Sie die E-Book-Ausgabe diese Buches downloaden.
Systemvoraussetzungen für E-Book inside: Internet-Verbindung und Adobe-Reader oder Ebook-Reader bzw. Adobe Digital Editions.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
1 | Einführung |
Dieses Kapitel soll Ihnen einen ersten Überblick über die VBA-Programmierung unter Microsoft Access (ab Version 2010) vermitteln. Da das Buch nicht für den absoluten Einsteiger geschrieben wurde, gehen die Autoren davon aus, dass Sie bereits über gewisse Erfahrungen in der konventionellen Access-Datenbankprogrammierung verfügen, die Entwicklungsumgebung bedienen können und zumindest auch wissen, wie ein Makro funktioniert.
1.1 | VBA-Programmierung in Access |
() ist weit mehr als nur eine Alternative zur gängigen Makro-Programmierung unter Microsoft Access. Es handelt sich hier um eine komfortable und leistungsfähige Programmiersprache für alle Microsoft Office-Produkte.
1.1.1 | Visual Basic versus VBA |
Im Unterschied zu ist allerdings keine eigenständige Sprache, mit der allein man lauffähige Programme entwickeln könnte, sondern es lassen sich mit VBA bestimmte Anwendungen, wie z.?B. Microsoft Access, in ihrer Funktionalität erweitern bzw. nutzerspezifischen Anforderungen anpassen. Oder fachmännischer ausgedrückt: Von VBA aus lassen sich die Objektmodelle von Access, Word, Excel etc. steuern. Wenn wir im Folgenden mal von „Visual Basic“ und mal von „VBA“ sprechen, so sollten Sie diese „Laxheit“ nicht auf die Goldwaage legen, denn gemeint ist ein und dasselbe. Fakt ist, dass VBA als Untermenge vollständig in Visual Basic enthalten ist1, bei weitem aber nicht alle Features von Visual Basic unterstützt. Man könnte mit anderen Worten VBA auch als „kleinsten gemeinsamen Nenner“ von Visual Basic2 und Access bezeichnen (siehe folgende Abbildung).
HINWEIS: Es gibt zahlreiche Anwendungen, in die VBA integriert ist, und dabei handelt es sich bei weitem nicht nur um Microsoft Office-Produkte.
1.1.2 | Objekt- und ereignisorientierte Programmierung |
Im Unterschied zur klassischen prozeduralen Anwendungsentwicklung hat sich der VBA-Programmierer verstärkt mit folgenden Begriffen auseinander zu setzen:
1.1.2.1 | Objekte (Objects) |
Die verschiedenen Office-Anwendungen bieten ihre Funktionalität in Form von Objekten an, auf die mit VBA-Code zugegriffen werden kann. Obwohl wir mittlerweile im .NET-Zeitalter angekommen sind, liefert das COM () immer noch die Grundlage für die Zusammenarbeit der verschiedenen Office-Objekte (auch über Anwendungsgrenzen hinaus).
Aus Anwendersicht kennen Sie bereits Datenbankobjekte wie Tabelle, Abfrage, Formular, Bericht, Makro, Modul. Für den VBA-Programmierer sind neben den datenbankspezifischen Objekten und vor allem , und von besonderem Interesse, da sie die wesentlichen Anwenderschnittstellen zur Verfügung stellen. Hinzu kommen die , die keine Objekte im engeren Sinne sind, sondern lediglich Quelltextbibliotheken darstellen.
1.1.2.2 | Eigenschaften (Properties) |
Hinter diesem Begriff verbergen sich die Attribute von Objekten, wie z.?B. Höhe () und Breite () eines Textfeldes. Jedes Objekt verfügt über seine eigene Menge von Eigenschaften, die teilweise nur zur Entwurfszeit (im Eigenschaftenfenster) oder zur Laufzeit (per Quellcode) zugewiesen werden können. Allgemein unterscheiden wir zwischen Format-, Daten- und anderen Properties (siehe dazu Kapitel 4).
1.1.2.3 | Methoden (Methods) |
Diese auf dem Objekt definierten Funktionen und Prozeduren hauchen „Leben“ in die bislang nur mit statischen Attributen behafteten Objekte. So erzeugt z.?B. die -Methode eine Linie vor dem Hintergrund eines Reports, mit kann Text im -Objekt (Testfenster) ausgegeben werden usw.
1.1.2.4 | Ereignisse (Events) |
Diese werden von Nachrichten ausgelöst, die vom Objekt empfangen werden. Dieser Nachrichtenverkehr stellt die eigentliche Schnittstelle zu Windows dar. Der Mausklick auf ein Formular löst z.?B. ein -Ereignis für dieses Objekt aus. Wir unterscheiden zwischen Fenster- und Fokus-, Tastatur- und Maus- sowie Daten- und Filter-Events (siehe Kapitel 4 und 5). Eine Hauptaufgabe des Programmierers ist das Schreiben von so genannten Ereignisbehandlungsroutinen (Event-Handler), in denen er festlegt, wie das Objekt bei Eintreffen eines bestimmten Ereignisses zu reagieren hat.
Einen ersten Eindruck der objekt- und ereignisorientierten VBA-Programmierung gewinnen Sie am besten anhand der Beispiele im Praxisteil dieses Kapitels. Weitere grundlegende Ausführungen zur objektorientierten Programmierung (OOP) folgen in Kapitel 6.
1.1.3 | VBA- oder Makro-Programmierung? |
Die klassischen Programmiermöglichkeiten unter Microsoft Access (Makro- und Ausdruckseditor, QbE-Fenster etc.) sind bereits so komfortabel, dass Sie mit Recht die Frage stellen werden: „Wozu brauche ich denn dann überhaupt noch VBA?“
Hier eine Aufzählung wichtiger Argumente, die für den Einsatz von VBA sprechen:
-
Erhöhung der Performance (Ausführungsgeschwindigkeit)
-
Definition eigener Funktionen (Makros können keine Werte zurückliefern!)
-
Spezielle Fehlerbehandlungsroutinen sind möglich
-
Verwendung von Ereignissen mit Übergabeparametern
-
Definition neuer Objekte (Tabellen, Abfragen, Formulare, Berichte) per Code
-
Zugriff auf andere Windows-Programme per OLE oder DDE
-
Nutzung spezieller Funktionen des Windows-API
-
Auslagerung von Teilen des Anwendungscodes in eine Bibliothek
-
Arbeiten mit den Datenbank-Objekten
-
Zugriff auf integrierte Funktionen des Datenbanksystems (z.?B. Routinen zur Datendefinition oder SQL-Server-Prozeduren)
Auch der genialste Makro-Programmierer wird wohl früher oder später feststellen, dass er an Grenzen stößt, die sich nur mit dem mächtigen Instrumentarium von VBA durchbrechen lassen.
Der Umstieg zu VBA wird für den erfahrenen Makro-Programmierer vor allem durch zwei in Microsoft Access eingebaute Features erleichtert:
-
Automatische Makro-Konvertierung
-
-Objekt
Konkrete Anleitungen dazu finden Sie im entsprechenden Einführungsbeispiel bzw. im Übersichtsteil dieses Kapitels.
HINWEIS: Allerdings soll ? bei aller Liebe zu VBA ? auch nicht verschwiegen werden, dass die Programmierung von Datenmakros und Web-Datenbanken mit VBA nicht möglich ist.
1.1.4 | Die VBA-Entwicklungsumgebung |
Da in diesem Buch die VBA-Programmierung eine zentrale Rolle spielt, werden wir uns im Folgenden schwerpunktmäßig auf die Elemente der VBA-Entwicklungsumgebung (IDE3) konzentrieren und die übrigen Access-Bedienfunktionen weitgehend als bekannt voraussetzen.
1.1.5 | Formularentwurf |
Beim visuellen Entwurf der Benutzeroberflächen von Formularen bzw. Berichten haben wir es zunächst mit den standardmäßigen Fenstern der Access-IDE zu tun:
-
Navigationsbereich
-
Formular-/Berichtsfenster (Entwurfsansicht)
-
Eigenschaftenblatt
-
Menüband
Da vorausgesetzt wird, dass Sie bereits über Erfahrungen beim visuellen Entwurf von Formularen/ Berichten verfügen, kann wohl auf weitere Erklärungen verzichtet werden (siehe Einführungsbeispiel).
1.1.6 | Code-Fenster und Symbolleiste |
Das Tor zur VBA-Programmierung öffnet sich Ihnen weit, nachdem Sie die Registerkarte gewählt haben und auf die Schaltfläche (Befehlsgruppe ) klicken. Hier wählen Sie im Projekt-Explorer das gewünschte Formular aus.
1.1.6.1 | Die wichtigsten Fenster |
Das VBA-Fenster sieht unter Access genauso aus wie bei den übrigen Office-Anwendungen.
Die wichtigsten Fenster innerhalb der VBA-IDE sind
-
Code-Fenster (öffnen über F7 oder ),
-
Eigenschaftenfenster (öffnen über F4 oder ) und
-
Projektfenster (öffnen über Strg+R oder ).
Auf einige Besonderheiten dieser Fenster werden wir zu einem späteren Zeitpunkt eingehen.
1.1.6.2 | Die wichtigsten Menübefehle |
Wenn Sie in der VBA-IDE arbeiten, wechselt das Menüband das Aussehen und stellt Ihnen eine Reihe von Bedienfunktionen zur Verfügung, die Sie speziell für die Arbeit mit dem Code-Editor benötigen. Sie werden feststellen, dass viele Funktionen starke Ähnlichkeiten zur Bedienung einer Textverarbeitung unter Windows aufweisen.
Die am häufigsten benötigten Menüpunkte sind über Schaltflächen. In Abhängigkeit vom momentanen Zustand des Editors können einige Schaltflächen gesperrt sein und/oder das Aussehen bzw. die Funktion wechseln. Außerdem haben Sie die Möglichkeit, über das Menü Änderungen vorzunehmen.
Die folgende Tabelle zeigt eine Zusammenstellung der für den Einstieg in die Codeprogrammierung zunächst wichtigsten...