A Note Regarding Supplemental Files
I. Erste Schritte
1. Einleitung
1.1 Die Themenschwerpunkte dieses Buchs
Visual Basic for Applications
Die Beispieldatenbank
Beschreibung der Datenbank
Datenbank-Modell
1.2 Wie Sie am besten mit diesem Buch arbeiten
Aufbau des Buchs
Die Icons
Unterstützung für dieses Buch
Genug der Vorrede und hinein ins Vergnügen
II. Grundlagen von VBA
2. Die ersten VBA-Prozeduren erstellen
2.1 Die Programm-Oberfläche
Wichtige Komponenten des VBA-Editors
2.2 Das »klassische« erste Programm erstellen
»Hello world!« unter der Lupe
Weitere Parameter nutzen
Vordefinierte Konstanten
Schaltflächen angeben
Eigene Prozeduren aufrufen
Prozedurnamen finden
Funktion statt Sub-Prozedur
Eigene Funktionen
Test im Direktfenster
Funktion mit Parametern
Sub-Prozedur mit Parametern
Änderungen an zentralen Prozeduren
Mehrere Parameter
Benannte Parameter
Optionale Parameter
Funktionen auch außerhalb von VBA aufrufen
Properties
Nachteile von herkömmlichen Prozeduren
Syntax von Properties
Properties ändern nicht nur Eigenschaften
Properties mit mehreren Parametern
Prozeduren verlassen
Kommentare
2.3 Übungen zu diesem Kapitel
Übung 2.1
Übung 2.2
Übung 2.3
Übung 2.4
Übung 2.5
Übung 2.6
Übung 2.7
Übung 2.8
3. Datentypen und Variablen
3.1 Datentypen im Überblick
Die Speicherung von Daten im Computer
Ganzzahlige Werte
Nachkommawerte
Ganzzahlige Zahlen-Datentypen
Zahlen-Datentypen mit Nachkomma-Anteil
Sonderfall Datum
Sonstige Datentypen
Sonderfall Object-Datentyp
3.2 Namen für Variablen
Groß- und Kleinschreibung von Namen
Ungarische Notation
3.3 Deklaration von Variablen
Deklaration mit Datentyp
Objektvariablen
Konstanten
3.4 Gültigkeitsbereiche
Lokale Gültigkeit
Modul-öffentliche Gültigkeit
Datei-öffentliche Gültigkeit
Gültigkeit von Konstanten
Statische Variablen
Sammel-Deklaration vieler Variablen
Mehrere Variablen gleichzeitig deklarieren
Private Prozeduren und Module
Mehr Übersichtlichkeit
Verwechslungsgefahr verringern
3.5 Übungen zu diesem Kapitel
Übung 3.1
Übung 3.2
Übung 3.3
Übung 3.4
Übung 3.5
Übung 3.6
Übung 3.7
4. Datentyp-Sammlungen
4.1 Spezielle Variablen im Überblick
4.2 Eigene Datentypen
Datentypen von Parametern oder Funktionen
4.3 Typ-Definitionen für API-Aufrufe
Bessere Listenauswahl mit Enumerationen
Eigene Enumeration anlegen
Eigene Werte für Enumerations-Konstanten
4.4 Arrays
Dynamische Arrays in der Größe ändern
Größe des Arrays ermitteln
Mehrdimensionale Arrays
4.5 Variant als Pseudo-Array
4.6 Collection
4.7 Übungen zu diesem Kapitel
Übung 4.1
Übung 4.2
Übung 4.3
5. Operatoren, Entscheidungen und Schleifen
5.1 Vergleichsoperatoren
5.2 Logische Operatoren
Der And-Operator
Der Or-Operator
Der Xor-Operator
Die Eqv- und Imp-Operatoren
Der Not-Operator
Mit logischen Operatoren rechnen
Ein einzelnes Bit anschalten
Ein einzelnes Bit ausschalten
Praktischer Einsatz
Nutzung von VBA-Konstanten in SQL
5.3 Verzweigungen
Bedingung überprüfen
Die If-Anweisung
Erweiterung mit ElseIf
Fehlererkennung durch Else
Die IIf()-Funktion
Bedingungen verschachteln
Die Select-Anweisung
Mehrere Vergleiche
Vorteile von Select Case
5.4 Schleifen
For/Next-Schleifen
Auflistungsobjekte
Auflistungsobjekte per Schleife analysieren
For Each/Next-Schleifen
Auflistungen in Auflistungen
Exit for
Do/Loop
Dateien anzeigen
Wohin mit den vielen Daten?
Immer alles testen!
While/Wend-Schleife
5.5 Übungen zu diesem Kapitel
Übung 5.1
Übung 5.2
Übung 5.3
Übung 5.4
Übung 5.5
Übung 5.6
6. Fehler und Ausnahmen behandeln
6.1 Fehlerfreie Programme
Fehler provozieren
Fehlerbehandlung ankündigen
Fehlerbehandlung ausgrenzen
Verschiedene Fehler behandeln
Fehler an mehreren Stellen
Fehler beheben
Spaghetti-Code
Fehler ignorieren
Fehler-Hierarchie
Eigene Fehlerbehandlung wieder ausschalten
Alternativen
Zentrale Fehlerbehandlung
6.2 Programmablauf verfolgen
Code zeilenweise ausführen
Code anhalten
Überwachungen hinzufügen
6.3 Übungen zu diesem Kapitel
Übung 6.1
Übung 6.2
Übung 6.3
7. Klassen
7.1 Einführung in Klassenkonzepte
7.2 Grundgerüst einer Klasse
Eine erste Mini-Klasse
7.3 Initialisieren und Terminieren
7.4 Entwurf der Stoppuhr-Klasse
Funktionalität ergänzen
Bessere Funktionalität
Werte schreiben und lesen
Geschwindigkeit von Abfragen messen
7.5 Aufgaben unterschiedlich lösen
Unübersichtlicher Code
7.6 Gleiche Schale – anderer Kern
Aufruf der Klassen
7.7 Implements als »Klassen-Aufsicht«
Weitere Optimierungen
Verbesserter Aufruf
7.8 Klassen mit Unterobjekten
Objekte von Objektauflistungen
Zwei Klassen
Struktur der Auflistungsklasse
Einzelobjekt aus Liste ermitteln
7.9 Klassen mit Oberfläche
Separater Aufruf der Formulare
7.10 Übungen zu diesem Kapitel
Übung 7.1
Übung 7.2
Übung 7.3
III. Datenzugriff
8. Domänen-Funktionen
8.1 Zugriff auf Daten per Methode
Einfacher Zugriff
Langsamer Zugriff
Weitere Einschränkungen
8.2 Übungen zu diesem Kapitel
Übung 8.1
Übung 8.2
Übung 8.3
Übung 8.4
9. Recordsets
9.1 Zugriff auf Tabellen und Abfragen
Externe Tabellen
9.2 Datensatzwechsel
Prüfung auf vorhandene Datensätze
Zugriff auf viele Datensätze
Zugriff auf verschachtelte Datensätze
Anlagen
Mehrwertige Felder
9.3 Datensatz-Typen
9.4 Datenquelle filtern
9.5 Daten zusammenfassen
Kreuztabelle
Daten per VBA-Funktion finden
9.6 Suchen und Finden
Zeilenweise nummerieren
9.7 Daten schreiben
Datensätze anfügen
Importierte Daten einfügen
Datensätze verändern
9.8 SQL und VBA gemeinsam
SQL-Aktionen ohne Warnmeldung
Gespeicherte Aktionsabfragen ohne Warnmeldung
9.9 Transaktionen
9.10 Zugriff auf andere Programme
Excel schreibt in Access-Tabellen
Access schreibt in Word-Dokumente
9.11 Übungen zu diesem Kapitel
Übung 9.1
Übung 9.2
Übung 9.3
Übung 9.4
Übung 9.5
Übung 9.6
Übung 9.7
10. Formulare
10.1 Programmierte Formulare
Ereignisse
Kontrollelemente mit ihrem Code verbinden
Kontrollelemente per VBA ansprechen
Kontrollelemente ausblenden
Direkterer Aufruf des Codes
Mehrfacher Aufruf
Datensatz-Ereignisse
10.2 Andere Formulare steuern
Unterformulare
Unterobjekte programmieren
Zentrale Prozeduren zur Vereinfachung
Weitere Verbesserungen
Weitere Formular-Steuerungen
Datenbank-Informationen
Benutzeranmeldung
Informationen übersichtlich präsentieren
Benutzernamen in jedem Formular anzeigen
10.3 Haupt- und Unterformulare
Alternative zum Registersteuerelement
Listen mit Enumeration kombinieren
Unterformulare austauschen
Unterformulare anpassen
Verknüpfung allgemeiner formulieren
Abfragen als Unterformulare anzeigen
Flexible Listeninhalte
Modifizierte Unterformulare
10.4 Dynamische Formulare
Datenzugriff freigeben
Bilder dynamisch nachladen
Querverweise
Endlosformulare mit dynamischen Bildern
Formular-Modifikationen beim Öffnen
Maustasten auswerten
Lagerbestand prüfen
Bilder auswählen
Mehrwertige Felder auflösen
Aus Access heraus E-Mails versenden
Flexiblere Unterformulare
10.5 Übungen zu diesem Kapitel
Übung 10.1
Übung 10.2
Übung 10.3
Übung 10.4
11. Berichte
11.1 Programmierte Berichte
Berichte mit gemeinsamen Titeln
Berichte mit dynamischen Inhalten
Programmiertes Wasserzeichen
11.2 Übungen zu diesem Kapitel
Übung 11.1
Übung 11.2
Übung 11.3
Übung 11.4
IV. Anwendungen erstellen
12. Start-Einstellungen
12.1 AutoStart-Methoden
Das Makro AutoExec
VBA-Code aufrufen
Start-Dialog
12.2 Start-Makros umgehen
Notausstieg
12.3 Start-Logo
12.4 Übungen zu diesem Kapitel
Übung 12.1
Übung 12.2
Übung 12.3
13. Menüband anpassen
13.1 Eigene Register
Konzept eigener Register
Access-Optionen
Vertrauenswürdige Speicherorte
Register-Fehlermeldungen anzeigen
Register-Namen eintragen
Register-Definition in XML
Tabelle USysRibbons
Gruppen hinzufügen
Kontrollelemente aufnehmen
Grafiken im Register
Callback-Prozeduren
Bezeichnungsfelder verändern
Zusatzdialoge zu einer Gruppe
Kontrollelemente dynamisch aktivieren
Menü und Untermenü
Besser als Menüs: Listen
Statisches Kombinationsfeld
Kombinationsfeld zur Laufzeit erzeugen
Kombinationsfeld mit Bildern
Dynamisches Kombinationsfeld mit SQL
Menüband-Variable wiederherstellen
13.2 Übungen zu diesem Kapitel
Übung 13.1
Übung 13.2
Übung 13.3
Übung 13.4
14. Sonstige Optimierungen
14.1 Weitere Verbesserungen
SQL-gerechtes Datum
14.2 Listen programmieren
Listen mit Callback-Technik
Callback-Funktion schreiben
Fiktive Daten anzeigen
Listen mit Mehrfachauswahl
14.3 Aktualisierungsmeldungen
Textmeldung in der Statuszeile
Fortschrittsbalken in der Statuszeile
14.4 Formular-Status ermitteln
Parameterabfragen kapseln
Abfragen mit Funktionen
14.5 Externe Berichte einbinden
14.6 Übungen zu diesem Kapitel
Übung 14.1
Übung 14.2
Übung 14.3
Übung 14.4
15. Lösungen zu allen Übungen
Übung 2.1
Übung 2.2
Übung 2.3
Übung 2.4
Übung 2.5
Übung 2.6
Übung 2.7
Übung 2.8
Übung 3.1
Übung 3.2
Übung 3.3
Übung 3.4
Übung 3.5
Übung 3.6
Übung 3.7
Übung 4.1
Übung 4.2
Übung 4.3
Übung 5.1
Übung 5.2
Übung 5.3
Übung 5.4
Übung 5.5
Übung 5.6
Übung 6.1
Übung 6.2
Übung 6.3
Übung 7.1
Übung 7.2
Übung 7.3
Übung 8.1
Übung 8.2
Übung 8.3
Übung 8.4
Übung 9.1
Übung 9.2
Übung 9.3
Übung 9.4
Übung 9.5
Übung 9.6
Übung 9.7
Übung 10.1
Übung 10.2
Übung 10.3
Übung 10.4
Übung 11.1
Übung 11.2
Übung 11.3
Übung 11.4
Übung 12.1
Übung 12.2
Übung 12.3
Übung 13.1
Übung 13.2
Übung 13.3
Übung 13.4
Übung 14.1
Übung 14.2
Übung 14.3
Übung 14.4
Stichwortverzeichnis
Impressum
Supplemental files and examples for this book can be found at http://examples.oreilly.com/9783866452251/. Please use a standard desktop web browser to access these files, as they may not be accessible from all ereader devices.
All code files or examples referenced in the book will be available online. For physical books that ship with an accompanying disc, whenever possible, we’ve posted all CD/DVD content. Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.
Herzlich willkommen bei »Access 2013 VBA-Programmierung«. Dieses Buch erläutert den Einsatz von VBA in Access 2013 und zeigt, wie Sie damit professionelle DatenbankProgramme erstellen. Mit dieser Zielformulierung sind die drei Themenschwerpunkte beschrieben, die in diesem Buch besprochen und in den nächsten Abschnitten kurz vorgestellt werden.
Access 2013 selbst ist ein relationales Datenbank-Management-System, mit dem Sie eine komplette Datenbank von der Speicherung der Daten in Tabellen bis zur Ausgabe in Berichten erstellen können. Zusätzlich enthält Access mit VBA (Visual Basic for Applications) noch eine sehr mächtige Programmiersprache, die allen Wünschen und Anforderungen an ein modernes Programm gewachsen ist. Damit können Sie Access 2013 um praktisch jede beliebige Funktionalität erweitern. Ein paar der Highlights finden Sie in der folgenden Aufstellung:
Ausgefeilter Code-Editor mit Code-Farbgebung, der beispielsweise Schlüsselwörter farbig hervorhebt und Syntaxfehler markiert
IntelliSense-Auswahllisten, die sich öffnen, während Sie Code eintippen, und sinnvolle Vorschläge zur automatischen Vervollständigung des Programmcodes machen
Integrierter Debugger, der Sie beim Erkennen und Beheben von Fehlern in Ihren Programmen unterstützt
Umfangreiche, kontextsensitive Hilfe, die gerade bei den ersten Schritten und den ersten Programmierprojekten sehr hilfreich ist
Alle diese Bestandteile von VBA in Access 2013 werden Sie im Laufe dieses Buchs kennenlernen.
Die Datenbank-Beispiele sind so gewählt, dass sie mit möglichst wenigen Dateien durchgeführt werden können. Das erspart Ihnen das Abtippen immer neuer Beispiele und zeigt sehr gut das sinnvolle Zusammenspiel verschiedener Prozeduren. Die Informationen sind dabei selbstverständlich immer so aufbereitet, dass sie in einem konkreten Bezug zu dem jeweiligen Projekt oder der aktuellen Aufgabe stehen, um die Praxisnähe der vermittelten Kenntnisse zu gewährleisten.
Recht typisch ist es dabei für Access, dass zu einem Thema auch Techniken aus verschiedenen Bereichen eingesetzt werden müssen. Ich werde also immer wieder auf bereits besprochene Themen zurückgreifen, diese für eine neue Aufgabe noch einmal vertiefen und dabei so abwandeln, dass Sie wieder einen neuen Aspekt oder eine Verbesserung darin entdecken. Gelegentlich wird es sich auch nicht vermeiden lassen, Themen anzureißen, deren detaillierte Erläuterung erst in einem späteren Kapitel folgt. Dafür sehen Sie in einem solchen Zusammenhang dann schon vorausschauend viel besser, wofür die jeweilige Technik geeignet ist.
Auch und gerade bei der VBA-Programmierung zeichnet sich eine gute Lösung gelegentlich sogar dadurch aus, dass bewusst auf den Einsatz von VBA verzichtet und stattdessen auf bereits eingebaute Access-Fähigkeiten zurückgegriffen wird. Schließlich möchte ich Ihnen nicht Programmierung um ihrer selbst willen zeigen, sondern als Werkzeug für effektive Lösungen. Gerade das zeigt aber die Leistungsfähigkeit von Access, indem es für alle Aufgabenstellungen immer auch eine Lösung gibt, meistens sogar eine leichtere als Sie denken. Dieses Buch wird Ihnen helfen, solche Lösungen zu finden.
Dieses Buch geht davon aus, dass Sie sich mit der Datenmodellierung und der grundsätzlichen Bedienung von Access 2013 auskennen.
Ausführliche Informationen zu diesen Themen finden Sie im Buch »Desktop- und Web-Datenbanken entwickeln mit Access 2013«, das ebenfalls bei Microsoft Press erschienen ist. Als kleine Leseprobe steht Ihnen das Kapitel »Grundlagen des Datenbankdesigns« kostenlos als Download zur Verfügung.
Die Datei finden Sie unter
www.microsoft-press.de/support/9783866452251
oder
msp.oreilly.de/support/2359/787
Für fast alle Beispiele in diesem Buch werde ich auf zwei Datenbanken (Grundlagen.accdb und Umbuchung.accdb) zurückgreifen, die Sie selbstverständlich auch downloaden können. Sie sind so angelegt, dass möglichst wenig Schreibarbeit notwendig ist, auch wenn sich eine gewisse Komplexität natürlich nicht vermeiden lässt. Schließlich ist die VBA-Programmierung ja gerade dann nötig, wenn Sie über die normalen Möglichkeiten einer Access 2013-Datenbank hinausgehen wollen.
Die Beispieldatenbank – und alle anderen Beispielprojekte – finden Sie unter
www.microsoft-press.de/support/9783866452251
und
msp.oreilly.de/support/2359/787
Die hier eingesetzte Datenbank Umbuchung.accdb steht für einen fiktiven Online-Shop namens »Umbuchung«, in dem gebrauchte und insbesondere antiquarische Bücher gehandelt werden können. Dabei tritt nicht nur der Shop-Betreiber als Verkäufer auf, sondern die Käufer können sich ebenso selbst als Verkäufer eintragen und eigene Bücher anbieten.
Das Konzept hat durchaus Ähnlichkeiten mit Teilen von Amazon.de oder eBay, allerdings geht es hier gerade nicht um die Internet-Anbindung des Beispiels. Natürlich wäre das technisch möglich, aber ich möchte Ihnen ja die Access-Möglichkeiten zeigen. Nehmen wir also an, dass ein Verbund aus Buchhändlern und interessierten Fachleuten etwa aus dem Universitätsbereich direkten Zugriff auf diese Datenbank hat.
Die Aufgaben des Systems lassen sich recht einfach beschreiben:
Einzelne Benutzer müssen sich eintragen können und ihre Stammdaten als Käufer und/oder Verkäufer hinterlegen können
Zu jedem Benutzer müssen mehrere Adressen gespeichert werden, weil sich Rechnungs- und Lieferadresse unterscheiden können. Auch die Angabe weiterer Adressen für Geschenklieferungen ist damit möglich.
Auf einer Bestellung (im Internet meistens als Warenkorb bezeichnet) werden beliebig viele Artikel gesammelt, bestätigt und deren Lieferstatus verfolgt
Benutzer ohne vollständige Verkäufer-Daten dürfen keine Artikel zum Verkauf anbieten. Benutzer ohne Käufer-Daten dürfen zwar Artikel auf einer Bestellung sammeln, aber noch nicht bestätigen. Daher ist es wichtig, den Status zu unterscheiden.
Da bei Remittenden (an den Verlag zurückgelieferte Bücher) für den Verkäufer die Möglichkeit besteht, weitere Exemplare nachzuordern, kann hier ein Mindestbestand angegeben werden, ab dem nachbestellt wird
Für jede Bestellung muss die Datenbank prüfen, ob die vorhandene Lagermenge ausreicht oder nötigenfalls weniger Exemplare geliefert werden
Auch Bücher verkaufen sich besser mit Fotos. Damit diese die Datenbank nicht unnötig aufblähen, sollen sie in einem Verzeichnis abgelegt und bei Bedarf nachgeladen werden, sodass auch mehrere Angebote das gleiche Foto benutzen können. Falls kein Foto vorhanden ist, soll wenigstens ein Standardbild erscheinen.
Alle Formulare sollen sinnvoll untereinander verknüpft sein, damit ein Benutzer beispielsweise vom Artikelformular direkt zu den Stammdaten genau dieses Verkäufers gelangt
Natürlich ist manches davon mit den umfangreichen Fähigkeiten von Access 2013 bereits ohne Programmierung lösbar. Aber VBA wird die Leistungsfähigkeit und Bedienungsfreundlichkeit einer solchen Datenbank erheblich verbessern und an manchen Stellen überhaupt erst sicherstellen.
Das Datenbank-Modell des Beispiels sieht aus wie in Abbildung 1.1. Dabei enthalten alle Feldnamen in leichter Abwandlung der Ungarischen Notation (siehe Kapitel 3) ein dreibuchstabiges Präfix für ihren jeweiligen Tabellennamen. Dadurch sind sie datenbankweit eindeutig und unproblematisch zu benutzen.
Wenn Sie wie hier die Master-Tabellen (die 1er-Seiten der 1:n-Beziehungen) höher als die Detail-Tabellen (die n-Seiten) anordnen, werden die problematischen Tabellen schnell deutlich. Je tiefer eine Tabelle in diesem Modell ist, desto mehr Daten enthält sie. Daher müssen Sie sich dort viel intensiver mit Zugriffsgeschwindigkeiten und Platzverbrauch beschäftigen.
Abbildung 1.1 Das Tabellen-Modell der Beispieldatenbank Umbuchung.accdb
Das Modell ist sicherlich einfacher zu verstehen, wenn wir es einmal gemeinsam betrachten:
Die Tabelle tblKunden enthält die Liste aller Käufer und Verkäufer, allerdings nur mit minimalem Dateninhalt. Zu der eindeutigen ID gibt es ein paar Angaben über Konto und E-Mail, die im wirklichen Leben sicherlich ausführlicher gestaltet wären. Außerdem kann jeder Kunde verschiedene Funktionen annehmen: als (nicht komplett angemeldeter) Interessent, nur Käufer, nur Verkäufer oder beides.
Die Adresse ist ausdrücklich nicht Bestandteil eines Kunden-Datensatzes, weil dieser ja mehrere Adressen nennen darf. In tblTypen stehen verschiedene Arten von Adressen wie Lieferadresse oder Rechnungsadresse.
Die Tabelle tblAdressen enthält alle Adressen mit jeweils dem Verweis auf die eindeutige Kennung kndID des Kunden und typID des Adressen-Typs
Nicht vom Kunden, sondern erst von einer (Liefer-)Adresse ausgehend kann eine Bestellung in tblBestellungen angelegt werden. Damit ist wegen der Beziehungen sowohl deren Zieladresse als eben auch deren Empfänger klar. Ebenfalls zur Bestellung gehört die Rechnungsadresse, die identisch sein kann, aber nicht muss.
Um den Fortschritt der Bestellung und der späteren Lieferung verfolgen zu können, enthält die Tabelle tblBestellungen mehrere Datumsfelder für die verschiedenen Stadien, die eine Bestellung durchlaufen kann. Um das Datenmodell einfach zu halten, wird die Bestellung grundsätzlich nur als Ganzes abgewickelt, Teillieferungen oder die Rückgabe einzelner Artikel sollen hier nicht abgebildet werden.
Jede Bestellung enthält in tblBestellungenDetails eine beliebige Anzahl zu liefernder Artikel mit einer Bestellmenge und (wenn nicht ausreichend Exemplare lieferbar waren) einer davon eventuell abweichenden Liefermenge
Die Auswahl für diese Bestell-Details basiert auf tblArtikel mit den Angaben zu den Büchern. Dort stehen sowohl konkrete Informationen zu den angebotenen Exemplaren als auch der Verweis auf den Verkäufer. Dieser wiederum kommt aus der Tabelle tblKunden.
Diese Hinweise sollten für ein erstes Verständnis der Beispieldatenbank ausreichen. Konkretere Angaben werde ich nachreichen, wenn es für den jeweiligen Programmcode notwendig ist.
Sollte Ihnen jetzt der Kopf rauchen, dann machen Sie sich keine Sorgen. Access 2013 bleibt trotz aller Komplexität auch für schwierigste Aufgaben ein einfach und übersichtlich zu bedienendes Programm.
Dieses Buch macht Sie mit der Entwicklung von VBA in einer Access 2013-Datenbank vertraut – Das geht leichter, als Sie denken. In kurzer Zeit werden Sie über das nötige Know-how verfügen, um ansprechende Ergebnisse zu erzielen. Zugleich erwerben Sie das entsprechende Know-why, das heißt, Sie erfahren immer auch, warum etwas in einer bestimmten Weise funktioniert.
Ein VBA-Programm versucht, genau wie eine Datenbank, einen Ausschnitt der Wirklichkeit abzubilden. Dabei muss es natürlich vereinfachen und abstrahieren, aber genau das hilft oftmals, ein Problem klarer zu formulieren. Sobald Sie die Frage richtig stellen, liegt die Antwort meistens schon bereit, denn der schwierigste Teil besteht darin, die Frage, also das Problem, zu präzisieren.
Im Laufe des Buchs zeige ich Ihnen Methoden und Techniken, mit denen Sie die richtigen Fragen zu stellen lernen und damit die meisten Klippen einer Code-Entwicklung schon umschifft haben. Das ist schließlich keine Geheimwissenschaft, sondern ein ganz solides Handwerk, welches sich mit ein wenig Unterstützung lernen lässt.
Diesem Ansatz folgend ist das Buch in vier Teile untergliedert, die Sie am besten von vorne nach hinten lesen und durcharbeiten, da die Informationen der einzelnen Kapitel aufeinander aufbauen.
Teil I enthält diese Einleitung mit der Erläuterung der Beispieldatenbank und zeigt Ihnen vor allem, welche Möglichkeiten Access-VBA bietet.
Teil II stellt Ihnen an vielen praktischen Beispielen die grundlegenden Sprachelemente und Konzepte von VBA vor. Sie werden hier bestimmt auch dann Neues entdecken, wenn Sie schon in einer anderen Sprache programmiert haben.
Teil III beschäftigt sich mit dem Lesen und Schreiben von Daten in Datenbanken. Hier werde ich Ihnen verschiedene Alternativen des Datenzugriffs vorstellen, damit Sie sehen, wie Sie zu Ihrer Aufgabe die passende Prozedur erstellen. Dabei geht es nicht nur um den Zugriff auf die Tabellen und Abfragen einer Datenbank, sondern auch auf die Daten in Formularen oder Berichten.
Teil IV nennt schließlich Optimierungen für Ihre Datenbank, die bei den vorherigen Themen noch nicht zur Sprache kamen. Das umfasst sowohl Anpassungen des Menübands und eigene Tastenkürzel als auch die Nutzung externer Funktionen, um die Leistungsfähigkeit Ihrer Datenbank zu verbessern.
Alle Adressen oder Namen von Personen, Buchtiteln und Firmen sind selbstverständlich völlig frei erfunden.
Hin und wieder empfiehlt es sich, bestimmte Informationen in eigenen Absätzen auszuzeichnen.
Wichtig | Der Textmarker weist Sie auf etwas hin, worauf Sie unbedingt achten sollten. | |
Tipp | Hier erfahren Sie, wie Sie etwas besonders einfach und elegant erledigen können. | |
Hintergrund | Absätze mit diesem Icon geben Ihnen wichtige Hintergrundinformationen und erklären, warum etwas in einer bestimmten Weise funktioniert. |
Der Verlag hat auch von seiner Seite alles unternommen, um die Richtigkeit des Buchinhalts und des Bonusmaterials sicherzustellen. Etwaige Korrekturen und Änderungen finden Sie unter folgender Adresse:
http://www.microsoft-press.de/support.asp
Tragen Sie dazu in das untere der beiden Eingabefelder für die ISBN-Nummer die Ziffern 225 ein und klicken Sie dann auf Suchen.
Wenn Sie Kommentare, Fragen oder Anregungen zum Inhalt dieses Buchs oder des Begleitmaterials haben, senden Sie eine E-Mail an folgende Adresse bei Microsoft Press:
mspressde@oreilly.de
oder per Post an
Microsoft Press
Konrad-Zuse-Str. 1
85716 Unterschleißheim
Beachten Sie, dass Microsoft Press unter diesen Adressen keinen Support für Softwareprodukte leistet.
Viel Spaß beim Entwickeln Ihrer Datenbanken wünscht Ihnen
Lorenz Hölscher