Wie Sie mithilfe von VBA Access-Datenbanken gezielt im Hinblick auf Ihre Anforderungen optimieren, erfahren Sie in diesem Buch von Bernd Held. Er gehört zu den bekanntesten deutschsprachigen VBA-Spezialisten, viele seiner Bücher sind Bestseller.
Nach einer grundlegenden Einführung in die Programmierung mit VBA lernen Sie die zentralen Objekte in Access (Tabellen, Abfragen etc.) intensiv kennen und erfahren, wie Sie aus Access auf Excel oder Word zugreifen. Außerdem profitieren Sie von der umfassenden Behandlung aller relevanten Sicherheitstechniken, mit denen Sie Datenbanken und Daten schützen. Damit Ihre Datenbanken intuitiv benutzbar sind und als eigenständige Datenbankanwendungen funktionieren, widmet sich ein eigener Teil der Programmierung von Benutzeroberflächen. Ein Troubleshooting-Kapitel und über 600 geprüfte Makros zum Download runden das Angebot ab. Geeignet für Access 2021, Access in Microsoft 365 sowie alle Vorgängerversionen bis Access 2010.
Aus dem Inhalt:
Bernd Held ist gelernter Informatiker. Zu seinen Spezialgebieten zählen Excel, VBA-Programmierung, Access und allgemeine Office- und Tool-Themen. Er wurde von Microsoft mehrfach als MVP (Most Valuable Professional) für den Bereich Excel ausgezeichnet. Seit 2008 arbeitet er mit einem eigenen Team aus Experten zusammen, das Projekte und Schulungen durchführt, Unternehmen berät und Bücher sowie Fachartikel veröffentlicht.
Vorwort ... 21
1. Grundsätzliches zur Programmierung ... 25
1.1 ... Wie gehe ich von Anfang an richtig vor? ... 26
1.2 ... Die Entwicklungsumgebung von Access ... 28
1.3 ... Hilfsmittel für die Programmierung ... 33
1.4 ... Die Fenster und die Testumgebung ... 42
1.5 ... Weitere Einstellungen ... 49
2. Variablen, Konstanten und Datentypen ... 53
2.1 ... Regeln für die Syntax von Variablen ... 54
2.2 ... Variablen am Beginn der Prozedur deklarieren ... 54
2.3 ... Die verschiedenen Variablentypen ... 55
2.4 ... Variablendeklarationen erzwingen ... 57
2.5 ... Die wichtigsten Variablentypen ... 58
2.6 ... Noch kürzere Deklaration von Variablen ... 60
2.7 ... Die Reddick-Namenskonvention ... 60
2.8 ... Variablendeklaration mit »DefType« ... 62
2.9 ... Aufzählungstypen (»Enum«-Anweisung) ... 63
2.10 ... Konstanten verwenden ... 64
2.11 ... Systemkonstanten einsetzen ... 65
3. Die wichtigsten Sprachelemente in Access ... 85
3.1 ... Prozeduren ... 85
3.2 ... Verzweigungen/Bedingungen ... 96
3.3 ... Die Anweisung »Select Case« für mehr Übersicht ... 103
3.4 ... Schleifen in Access einsetzen ... 106
3.5 ... »With«-Anweisungen ... 119
3.6 ... VBA-Funktionen einsetzen ... 120
3.7 ... Umwandlungsfunktionen ... 153
3.8 ... Die »Is«-Funktionen in VBA ... 160
3.9 ... Operatoren ... 178
3.10 ... Eigene Funktionen schreiben ... 182
4. Ein Streifzug in die Welt der Objekte ... 201
4.1 ... Das »Application«-Objekt ... 201
4.2 ... Das Objekt »AccessObject« ... 209
4.3 ... Das Objekt »CodeData« ... 213
4.4 ... Das Objekt »DoCmd« ... 214
4.5 ... Integrierte Dialoge einsetzen ... 221
4.6 ... Das Objekt »FileSystemObject« ... 228
5. Tabellen programmieren ... 243
5.1 ... Tabellen bearbeiten mit »DoCmd« ... 244
5.2 ... Tabellen mit ADO programmieren ... 253
5.3 ... SQL-Anweisungen ... 257
5.4 ... Tabellenstrukturen mit ADOX ermitteln ... 289
5.5 ... Datenbanken suchen und dokumentieren ... 299
6. Abfragen programmieren ... 303
6.1 ... Abfragetypen ... 303
6.2 ... Abfragen durchführen ... 305
6.3 ... Abfragen mit SQL generieren ... 307
6.4 ... Aktualisierungsabfrage -- Artikelnamen ändern ... 307
6.5 ... Anfügeabfrage -- Mitarbeiter hinzufügen ... 310
6.6 ... Löschabfrage ausführen ... 312
6.7 ... Tabellenerstellungsabfrage durchführen ... 316
6.8 ... Datendefinitionsabfragen durchführen ... 318
6.9 ... Daten zusammenführen ... 327
6.10 ... Abfragen mit ADO programmieren ... 330
7. Programmierung von Dialogen, Steuerelementen und Formularen ... 341
7.1 ... Das Meldungsfeld »MsgBox« ... 342
7.2 ... Die Eingabemaske »InputBox« ... 346
7.3 ... Formulare erstellen ... 349
8. Berichte erstellen und programmieren ... 441
8.1 ... Berichtsarten in Access ... 441
8.2 ... Der Berichtsaufbau ... 442
8.3 ... Berichte entwerfen ... 443
8.4 ... Berichte bearbeiten mit »DoCmd« ... 444
8.5 ... Berichte formatieren ... 451
8.6 ... Berichte identifizieren ... 457
8.7 ... Berichte erstellen ... 464
9. Ereignisse in Access programmieren ... 483
9.1 ... Das Ereignis »Form_Open« ... 484
9.2 ... Das Ereignis »Form_Close« ... 487
9.3 ... Das Ereignis »Form_Load« ... 490
9.4 ... Das Ereignis »Form_Current« ... 492
9.5 ... Das Ereignis »Form_AfterInsert« ... 496
9.6 ... Das Ereignis »Form_BeforeInsert« ... 499
9.7 ... Das Ereignis »Form_BeforeUpdate« ... 502
9.8 ... Das Ereignis »Form_AfterUpdate« ... 508
9.9 ... Das Ereignis »Form_Delete« ... 508
9.10 ... Das Ereignis »Form_Dirty« ... 511
9.11 ... Das Ereignis »BeforeDelConfirm« ... 512
9.12 ... Das Ereignis »Form_AfterDelConfirm« ... 513
9.13 ... Das Ereignis »Form_Activate« ... 514
9.14 ... Das Ereignis »Form_Deactivate« ... 517
9.15 ... Das Ereignis »Form_Resize« ... 517
9.16 ... Das Ereignis »Form_DblClick« ... 519
9.17 ... Das Ereignis »Click« ... 523
9.18 ... Die Ereignisse »MouseDown« und »MouseUp« ... 524
9.19 ... Das Ereignis »MouseMove« ... 530
9.20 ... Das Ereignis »Schaltfläche_Click« ... 532
9.21 ... Die Ereignisse »GotFocus« und »LostFocus« ... 532
9.22 ... Die »Key«-Ereignisse ... 533
9.23 ... Das Ereignis »Steuerelement_BeforeUpdate« ... 537
9.24 ... Das Ereignis »Steuerelement_Enter« ... 543
9.25 ... Das Ereignis »Steuerelement_Exit« ... 545
9.26 ... Die Reihenfolge der Ereignisse ... 546
10. Access im Zusammenspiel mit Office ... 549
10.1 ... Textdateien im Zugriff von Access ... 550
10.2 ... Access im Zusammenspiel mit Word ... 564
10.3 ... Outlook und Access ... 574
10.4 ... Access im Duett mit Excel ... 596
11. API-Funktionen einsetzen ... 627
11.1 ... Das CD-ROM-Laufwerk ermitteln ... 628
11.2 ... Den Namen des Anwenders ermitteln ... 631
11.3 ... Das CD-ROM-Laufwerk bedienen ... 632
11.4 ... Die Bildschirmauflösung ermitteln (nur 32 Bit) ... 632
11.5 ... Ist ein externes Programm gestartet? ... 633
11.6 ... Ein externes Programm aufrufen ... 634
11.7 ... Wie lange läuft ein externes Programm (nur 32 Bit)? ... 634
11.8 ... Access schlafen schicken (32/64 Bit) ... 636
11.9 ... Verzeichnisse erstellen ... 637
11.10 ... Verzeichnis löschen ... 638
11.11 ... Verzeichnisbaum anzeigen und auswerten (nur 32 Bit) ... 638
11.12 ... Die Windows-Version ermitteln ... 639
11.13 ... Windows-Verzeichnis ermitteln (nur 32 Bit) ... 641
11.14 ... Windows-Systemverzeichnis ermitteln (nur 32 Bit) ... 641
11.15 ... Das temporäre Verzeichnis ermitteln (nur 32 Bit) ... 642
11.16 ... Das aktuelle Verzeichnis ermitteln (nur 32 Bit) ... 643
11.17 ... Windows-Infobildschirm anzeigen ... 643
11.18 ... Access-Verzeichnis ermitteln ... 644
11.19 ... Standardverzeichnis festlegen (nur 32 Bit) ... 644
11.20 ... Dateityp und Anwendung ermitteln ... 645
11.21 ... Kurze Pfadnamen ermitteln (nur 32 Bit) ... 646
11.22 ... Den Computernamen ermitteln ... 647
11.23 ... Texte mit API-Funktionen konvertieren ... 647
11.24 ... Die Zwischenablage löschen ... 648
11.25 ... Soundkarte checken ... 649
11.26 ... Sounds per API-Funktion ausgeben (nur 32 Bit) ... 649
11.27 ... PC piepsen lassen ... 649
11.28 ... Tasten abfangen (nur 32 Bit) ... 650
11.29 ... Dateien suchen ... 651
11.30 ... Dateiinformationen auslesen ... 652
11.31 ... Ist die Internetverbindung aktiv? ... 654
11.32 ... Cursorposition in Pixeln angeben (nur 32 Bit) ... 655
12. Datenbanken und Quellcode schützen und pflegen ... 661
12.1 ... Ihre Access-Lösung mithilfe von Startparametern absichern ... 661
12.2 ... Eine ACCDE-Datenbank erstellen ... 663
12.3 ... Eine Datenbank über ein Kennwort schützen ... 663
12.4 ... Quellcode schützen ... 670
12.5 ... Eine Datenbank komprimieren und reparieren ... 671
13. VBE-Programmierung in Access ... 675
13.1 ... Die VBE-Bibliothek einbinden ... 676
13.2 ... Weitere Bibliotheken einbinden oder entfernen ... 678
13.3 ... Fehlerhafte Verweise ermitteln ... 680
13.4 ... In den VBE springen ... 681
13.5 ... Objektbibliotheken auslesen ... 681
13.6 ... Neue Module einfügen ... 682
13.7 ... Modul(e) löschen ... 683
13.8 ... Prozedur(en) löschen ... 684
13.9 ... Einzelne Texte oder Befehle im Quellcode finden ... 686
13.10 ... Module mit Quellcode versorgen (Import) ... 689
13.11 ... Prozeduren sichern (Export) ... 692
13.12 ... Module drucken ... 693
13.13 ... »Lines Of Code« ermitteln ... 695
13.14 ... Identifikation von VB-Komponenten ... 696
13.15 ... Prozeduren auflisten ... 697
13.16 ... Eine eigene VBA-Datenbank anlegen ... 701
14. Anwendungen optimieren ... 707
14.1 ... Die automatische Leistungsanalyse ... 707
14.2 ... Datenbanken und Quellcode dokumentieren ... 709
14.3 ... Tabellen optimal anlegen ... 711
14.4 ... Die richtigen Befehle ... 712
15. Access und das Internet ... 717
15.1 ... E-Mail verschicken ... 717
15.2 ... Tabellen in Internetformate transferieren ... 738
16. Ribbons programmieren ... 741
16.1 ... Programmierung über ein XML-Markup ... 742
16.2 ... Weitere wichtige Quellen und Hilfen ... 748
17. FAQ für Access-Entwickler ... 751
17.1 ... Wie hänge ich einer Tabelle ein Feld an? ... 752
17.2 ... Wie verhindere ich, dass ein Formular geschlossen wird? ... 753
17.3 ... Wie frage ich alle Tabellen einer geschlossenen Datenbank ab? ... 754
17.4 ... Wie lege ich in einem bestimmten Verzeichnis eine neue Datenbank automatisch an? ... 756
17.5 ... Wie verlinke ich eine Tabelle aus einer anderen Datenbank? ... 758
17.6 ... Wie normiere ich Telefonnummern in Tabellen? ... 759
17.7 ... Wie dokumentiere ich eine komplette Datenbank? ... 761
17.8 ... Wie prüfe ich, ob eine bestimmte Tabelle existiert? ... 762
17.9 ... Wie prüfe ich, ob ein bestimmtes Feld in einer Tabelle angelegt ist? ... 764
17.10 ... Wie führe ich eine SQL-Abfrage auf eine andere Datenbank aus? ... 765
17.11 ... Wie ermittle ich alle verfügbaren Drucker? ... 766
17.12 ... Wie schreibe ich bestimmte Feldinhalte einer Tabelle in eine Textdatei? ... 767
17.13 ... Wie transferiere ich eine Access-Tabelle nach Word? ... 769
17.14 ... Wie lege ich eine Parameterabfrage automatisch an? ... 772
17.15 ... Wie greife ich auf Tabelleneigenschaften einer Datenbank zu? ... 773
17.16 ... Wie frage ich die beiden Extremwerte einer Spalte in einer Tabelle ab? ... 774
17.17 ... Wie führe ich eine Durchschnittsberechnung durch? ... 776
17.18 ... Wie erstelle ich eine Unikatliste? ... 777
17.19 ... Wie ermittle ich die Gesamtsumme für ein Tabellenfeld? ... 779
17.20 ... Wie führe ich eine bedingte Summierung durch? ... 780
17.21 ... Wie lese ich über eine ID den dazugehörigen Lieferanten aus? ... 781
Index ... 783