Access-VBA

Werbung
Inhaltsverzeichnis
Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Über den Autor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
Teil 1
Arbeitsumgebung, Datentypen, Sprachelemente . . . . . . . . . . . .
31
Kapitel 1
Grundsätzliches zur Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
1.1
Wie gehe ich von Anfang an richtig vor?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
1.2
Die Entwicklungsumgebung von Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
Makros ausführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
Wie erfahre ich mehr über die einzelnen Befehle? . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Hilfsmittel für die Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
Die Symbolleiste Bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
Automatische Syntaxprüfung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
Suchen und Ersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
Kopieren und Einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
Mit Tastenkombinationen arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
Die Fenster und die Testumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
Das CodeFenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
Hilfe im DirektFenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
Den Code Schritt für Schritt durchlaufen lassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
Überwachung hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
Das LokalFenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
Die Symbolleiste Debuggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
Weitere Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
EditorEinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
Editierformat festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
1.3
1.4
1.5
( KOMPENDIUM )
Access-VBA
7
Inhaltsverzeichnis
Allgemeine Einstellungen vornehmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
Fenster verankern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
Kapitel 2
Variablen, Konstanten und Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
2.1
Regeln für die Syntax von Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
2.2
Variablen am Beginn des Makros deklarieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
2.3
Verschiedene Variablentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
Statische Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Private Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Öffentliche Variablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
2.4
Variablendeklarationen erzwingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
2.5
Die wichtigsten Variablentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
2.6
Noch kürzere Deklaration von Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
2.7
Variablendeklaration mit DefType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
2.8
Die Verwendung von Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
2.9
Systemkonstanten einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
DatumsformatKonstanten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
DirKonstanten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
File Input/OutputKonstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
Die ShellKonstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
StrConvKonstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
VarTypeKonstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
Die DoCmd.RunCommandKonstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
Kapitel 3
Die wichtigsten Sprachelemente in Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
3.1
Verzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
Eingaben auswerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
Eingaben prüfen und wandeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
91
Eine Besonderheit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
94
Die Anweisung Select Case für mehr Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
Zahlenwerte prüfen mit Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
Textwerte prüfen mit Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
3.2
8
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
3.3
Schleifen in Access einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
For...NextSchleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
98
For Each...NextSchleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Die Schleife Do Until...Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Die Schleife Do While...Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.4
VBAFunktionen einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
108
Laufwerk und Verzeichnis einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Textdateien einlesen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Eingegebene EMailAdressen prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Textteile extrahieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Dateiendungen prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Texte kürzen und extrahieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Texte splitten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Texte zerlegen, konvertieren und wieder zusammensetzen . . . . . . . . . . . . . . . . . . . . . . . 117
Texte bereinigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Zahlenwerte runden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Dateien löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Verzeichnisse erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Arbeitsverzeichnis ermitteln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Dateien kopieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Wochentag ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Monat ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Datumsberechnungen durchführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Datumsangaben formatieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Zeitfunktionen einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Farbfunktionen verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Werte aus Liste auswählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Ganzzahligen Wert extrahieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Zinsbelastung errechnen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Internen Zinsfuß errechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Abschreibungen berechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
( KOMPENDIUM )
Access-VBA
9
Inhaltsverzeichnis
3.5
Umwandlungsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
141
Die Typumwandlungsfunktion CBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Die Typumwandlungsfunktion CDbl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Die Typumwandlungsfunktion CDate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Die Typumwandlungsfunktion CLng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Die Typumwandlungsfunktion CStr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Die Funktion Val . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.6
Die ISFunktionen in VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
150
Die Funktion IsArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Die Funktion IsDate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Die Funktionen IsEmpty und IsNull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Die Funktion IsMissing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Die Funktion IsObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.7
Arbeiten mit Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
155
Einfache Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Mehrdimensionale Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Das Praxisbeispiel Straßentausch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Das Praxisbeispiel Top3 Max und Min. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.8
Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
166
Arithmetische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Verkettungsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Logische Operatoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3.9
Eigene Funktionen schreiben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
170
Dateien in einem Verzeichnis zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Prüfen, ob eine bestimmte Datei existiert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Prüfen, ob eine Datei gerade bearbeitet wird . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Dokumenteigenschaften einer Arbeitsmappe ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Letzten Tag im Monat ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Sonderzeichen aus Strings entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Eine eigene RundenFunktion erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
10
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
Die Position der ersten Zahl eines Strings ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Buchstaben eliminieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Römische Ziffern in arabische wandeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Arabische Zahlen in römische Syntax wandeln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Kapitel 4
Ein Streifzug in die Welt der Objekte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183
4.1
Das ApplicationObjekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
184
Datenbankinformationen erhalten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Aktuellen Anwendernamen ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Installierte Drucker ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Datenbank schließen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Access beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Aktuelle AccessVersion ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Formular anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Durchschnitt errechnen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Summen ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Datensätze zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Minimal und Maximalwerte ermitteln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
4.2
Das AccessObjectObjekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
189
4.3
Das Objekt CodeData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
192
4.4
Das Objekt DoCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
Berichte aufrufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Tabellen nach Excel transferieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Formular aufrufen und Vorauswahl treffen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
4.5
Integrierte Dialoge einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
198
Das Dialogfeld Öffnen anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Verzeichnis einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Dateien suchen mit Filtereinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Weitere Dialogfelder verwenden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
4.6
Den OfficeAssistenten programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
206
Den OfficeAssistenten anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
( KOMPENDIUM )
Access-VBA
11
Inhaltsverzeichnis
4.7
Das Objekt Filesystemobject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
211
Computerinfos anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Verzeichnisse ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Tastenkombinationen programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Homepagezugang ganz fix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Laufwerke mappen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Gemappte Laufwerke anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Laufwerk auswerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Textdateien einlesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Aktuelle Datenbank sichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
DatenbankDatumsangaben auswerten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Teil 2
Die wichtigsten Objekte in Access
...........................
223
Kapitel 5
Tabellen programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
225
5.1
Tabellen bearbeiten mit DoCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
226
Tabelle öffnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Tabellen filtern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Tabellen kopieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Tabellen umbenennen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
5.2
Tabellen programmieren mit ADO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
235
Tabelleninhalte auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
5.3
SQLAnweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
237
Die SELECTAnweisung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Die UNIONAnweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Die TOPAnweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Tabelleninhalte suchen und ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Lagerbestände manipulieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Preiserhöhung durchführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Tabellen updaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Artikel bewerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Datensätze filtern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Datensätze sortieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
12
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
Datensätze zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Lesezeichen einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Datensätze löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Datensätze hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
5.4
Tabellenstrukturen ermitteln mit ADOX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
267
Tabellen auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Tabellenstruktur auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Eine neue Tabelle anlegen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Tabellen löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
5.5
Datenbanken suchen und dokumentieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
278
Kapitel 6
Abfragen programmieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
281
6.1
Abfragetypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
281
6.2
Abfragen durchführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
283
6.3
Abfragen mit SQL generieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
284
6.4
Aktualisierungsabfrage – Artikelnamen ändern . . . . . . . . . . . . . . . . . . . . . . . . . . .
285
Aktualisierungsabfrage – Felder initialisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
6.5
Anfügeabfrage – Mitarbeiter hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
286
6.6
Löschabfrage – Artikeltabelle bereinigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
289
6.7
Tabellenerstellungsabfrage durchführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
290
6.8
Öffnen oder neu anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
290
6.9
Datendefinitionsabfragen durchführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
292
Neue Tabelle anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Tabellen ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Einen Tabellenindex bestimmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Tabellenindex entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Tabelle entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
6.10
Daten zusammenführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
300
6.11
Abfragen programmieren mit ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
302
Tabellen durch eine Abfrage erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Daten aus Tabelle entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Eine Abfrage erstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
( KOMPENDIUM )
Access-VBA
13
Inhaltsverzeichnis
Komplexere Abfragen generieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Parameterabfragen erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Kapitel 7
Programmierung von Dialogen, Steuerelementen und Formularen. . . . . . . . . .
313
7.1
Das Meldungsfeld MsgBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
314
Welche Schaltfläche wurde angeklickt?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Löschrückfrage einholen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Informationen anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Ist eine bestimmte Datenbank vorhanden? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
7.2
Die Eingabemaske InputBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
318
Mehrwertsteuer errechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Mehrere Eingaben erfassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
7.3
Formulare erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
320
Den FormularAssistenten einsetzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Formulare selbst zusammenstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Die Steuerelemente aus der Toolbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Steuerelemente einfügen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Formularfelder bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Aktivierreihenfolge anpassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Formularfelder formatieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Formulareigenschaften einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Steuerelementeigenschaften einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Bedingte Formatierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Schaltflächen einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Weitere wichtige Schaltflächen integrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Identifizieren von Steuerelementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Formular aufrufen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Formulare schließen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Textfelder programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Bezeichnungsfelder einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Kombinationsfeldlisten erstellen und programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Listenfelder programmieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
14
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
Kontrollkästchen programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Optionsschaltflächen programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Registerelemente programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Die Uhr im Formular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Das KalenderSteuerelement einbinden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Laufbalken programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Der Slider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Das TreeViewSteuerelement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Das Media PlayerSteuerelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Hyperlink in Formular integrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
ImageList und ListView programmieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Diagramme in Formulare integrieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
7.4
Das BildbetrachterTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
412
Das Formular zeichnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Das Formular programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Kapitel 8
Berichte erstellen und programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
421
8.1
Berichtsarten in Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
421
8.2
Der Berichtsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
422
8.3
Berichte entwerfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
423
8.4
Berichte bearbeiten mit DoCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
424
Berichte öffnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Berichte drucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Berichte kopieren und umbenennen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Berichte ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
8.5
Berichte formatieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
431
Magenta und Weiß im Wechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Schriftformatierungen anwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
8.6
Grafikelemente in Berichte integrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
435
Kreis einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Mit Linien arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
( KOMPENDIUM )
Access-VBA
15
Inhaltsverzeichnis
8.7
Berichte identifizieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
440
Berichte zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Berichtselemente ansprechen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Berichtselemente auflisten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Die verschiedenen Sektionen eines Berichts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
8.8
Berichte erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
447
Steuerelemente einfügen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Vollautomatische Berichtserstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Bereiche vergrößern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Bereiche ein und ausblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Seitenzahlen, Datum und Namen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Überschriften, Trennlinien und Summen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Teil 3
Ereignisse und Zusammenarbeit mit Office . . . . . . . . . . . . . . . . . .
465
Kapitel 9
Ereignisse in Access programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
467
9.1
Das Ereignis Form_Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
468
Zugang zu einem Formular einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Fokus auf bestimmtes Formularfeld setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Verknüpfte Tabelle eines Formulars prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
9.2
Das Ereignis Form_Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
471
Weitere Formulare und Tabellen schließen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Countdown programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Öffnen nach Schließen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
9.3
Das Ereignis Form_Load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
473
Beim Laden des Formulars ein Listenfeld füllen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
9.4
Das Ereignis Form_Current. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
475
Letzter Datensatz erreicht? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Felder ein und ausblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Titelleiste dynamisch verändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
9.5
Das Ereignis Form_AfterInsert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
477
Reaktion auf die Anlage eines neuen Satzes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
16
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
9.6
Das Ereignis Form_BeforeInsert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
479
Felder automatisch vorbelegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Eingabemöglichkeit beschränken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
9.7
Das Ereignis Form_BeforeUpdate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
483
Rückfrage einholen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Eingaben prüfen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Eingabe in Formularfeld erzwingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Letztes Änderungsdatum anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Alle Änderungen am Datenbestand dokumentieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Neuanlage verhindern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Keine Änderungen zulassen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
9.8
Das Ereignis Form_AfterUpdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
487
9.9
Das Ereignis Form_Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
488
Löschung verhindern bei Kriterium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Löschung mehrerer Datensätze verhindern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
9.10
Das Ereignis Form_Dirty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
489
Änderungen sofort speichern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
9.11
Das Ereignis BeforeDelConfirm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
490
StandardLöschAbfrage ersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
9.12
Das Ereignis Form_AfterDelConfirm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
491
Löschung bestätigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
9.13
Das Ereignis Form_Activate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
492
Formular maximieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Fokus setzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Einen bestimmten Datensatz im Formular einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Formular aktualisieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
9.14
Das Ereignis Form_Deactivate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
495
9.15
Das Ereignis Form_Resize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
495
Automatisches Anpassen von Steuerelementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
9.16
Das Ereignis Form_DblClick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
496
Ein schneller Sprung zwischen den Ansichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
VerkaufsraumFormular erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
( KOMPENDIUM )
Access-VBA
17
Inhaltsverzeichnis
9.17
Das Ereignis Form_Click. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
499
Datum und Uhrzeit ausgeben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
9.18
Die Ereignisse Form_MouseDown und Form_MouseUp . . . . . . . . . . . . . . . . . . . . .
500
Welche Maustaste wurde gedrückt? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Zusätzliche Symbolleiste einblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Schaltflächenfarbe verändern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Kontextmenü deaktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
9.19
Das Ereignis MouseMove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
505
Spezialeffekte für Textfelder einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
9.20
Das Ereignis Schaltfläche_Click . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
507
Maßnahmen lückenlos dokumentieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
9.21
Die Ereignisse GotFocus und LostFocus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
509
Formularfelder bei Eintritt färben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
9.22
Die KeyEreignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
510
Welche Tastaturtaste wurde gedrückt? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Datumsfelder automatisch erhöhen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Datum und Zeit einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
9.23
Das Ereignis Steuerelement_BeforeUpdate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
513
Artikel schon angelegt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Eingaben vervollständigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Postleitzahl prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Löschen von Eingaben rückgängig machen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
9.24
Das Ereignis Steuerelement_Enter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
518
Vorabinformationen geben. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
9.25
Das Ereignis Steuerelement_Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
519
Nachfrage starten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
9.26
Die Reihenfolge der Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
520
Reihenfolge beim Öffnen und Schließen eines Formulars. . . . . . . . . . . . . . . . . . . . . . . . . 520
Aktivierreihenfolge bei Steuerelementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Reihenfolge der Aktualisierungsereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
Eine komplette Kette von Ereignissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
18
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
Kapitel 10
Access im Zusammenspiel mit Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
523
10.1
Textdateien im Zugriff von Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
524
Textdateien speichern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Textdateien exportieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Codes sichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
Textdateien einlesen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
10.2
Access im Zusammenspiel mit Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
537
10.3
Word bedient sich einer AccessDatenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
541
Die Adressendatenbank anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Das WordDokument anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Den VBACode erfassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
10.4
Outlook und Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
548
Adresstabelle in den OutlookKontaktordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
Den Kontaktorder in einer AccessTabelle sichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
Termine in den Terminkalender übertragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Aufgaben in die Aufgabenliste von Outlook übertragen . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Notizen aus Access übertragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
10.5
Access im Duett mit Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
567
AccessTabelle in eine ExcelTabelle wandeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
ExcelDaten in eine AccessTabelle transferieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Bedingten ExcelImport durchführen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Excel greift auf Access zu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Datensicherung von ExcelTabellen in Access (Backup) . . . . . . . . . . . . . . . . . . . . . . . . . 583
ExcelDatei wiederherstellen (Restore) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
Kapitel 11
API-Funktionen einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
591
11.1
Ermittlung des CDROMLaufwerks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
592
11.2
Namen des Anwenders ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
594
11.3
Bedienung des CDROMLaufwerks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
595
11.4
Die Bildschirmauflösung ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
596
11.5
Ist ein externes Programm gestartet?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
597
11.6
Externes Programm aufrufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
597
( KOMPENDIUM )
Access-VBA
19
Inhaltsverzeichnis
11.7
Wie lange läuft ein externes Programm? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
598
11.8
Access schlafen schicken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
600
11.9
Verzeichnisse erstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
600
11.10
Verzeichnis löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
601
11.11
Verzeichnisbaum anzeigen und auswerten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
602
11.12
WindowsVersion ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
603
11.13
WindowsVerzeichnis ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
605
11.14
WindowsSystemverzeichnis ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
606
11.15
Das temporäre Verzeichnis ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
606
11.16
Das aktuelle Verzeichnis ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
607
11.17
WindowsInfobildschirm anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
607
11.18
AccessVerzeichnis ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
608
11.19
Standardverzeichnis festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
609
11.20
Dateityp und Anwendung ermitteln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
609
11.21
Kurze Pfadnamen ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
610
11.22
Computernamen ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
611
11.23
Texte mit APIFunktionen konvertieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
611
11.24
Zwischenablage löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
612
11.25
Soundkarte checken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
613
11.26
Sounds per APIFunktion ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
613
11.27
PC piepsen lassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
614
11.28
Tasten abfangen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
614
11.29
Dateien suchen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
615
11.30
DateiInformationen auslesen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
615
11.31
Internetverbindung aktiv?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
617
11.32
Cursorposition in Pixel angeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
618
20
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
Teil 4
Tuning, Schutz und Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
619
Kapitel 12
Datenbanken und Quellcode schützen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
621
12.1
AccessLösung mithilfe von Startparametern absichern . . . . . . . . . . . . . . . . . . . . .
622
12.2
Schützen einer Datenbank über ein Kennwort . . . . . . . . . . . . . . . . . . . . . . . . . . . .
623
Geschützte Datenbank per VBA öffnen (DAO). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
Geschütze Datenbank per VBA öffnen (ADO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
Datenbankkennwort ändern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
12.3
Quellcode schützen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
630
Kennwort für die Anzeige des Quellcodes anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
Datenbank ohne Quellcode speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
12.4
Datenbanken verschlüsseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
632
12.5
Datenbankzugriffe über Benutzerebenen einrichten . . . . . . . . . . . . . . . . . . . . . . . .
633
Anlegen der Arbeitsgruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
AdministratorKennwort einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
AdministratorBenutzer erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
DatensicherheitsAssistenten starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
Benutzer und Gruppen anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Kapitel 13
VBE-Programmierung in Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
653
13.1
Die VBEBibliothek einbinden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
654
13.2
Weitere Bibliotheken einbinden/entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
656
13.3
Fehlerhafte Verweise ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
658
13.4
In die VBE springen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
658
13.5
Objektbibliotheken auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
659
13.6
Neue Module einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
659
13.7
Modul(e) löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
661
13.8
Makro(s) löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
661
13.9
Einzelne Texte/Befehle im Quellcode finden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
663
13.10
Module mit Quellcode versorgen (Import) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
665
13.11
Makros sichern (Export) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
667
( KOMPENDIUM )
Access-VBA
21
Inhaltsverzeichnis
13.12
Module drucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
669
13.13
Lines Of Code ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
671
13.14
Identifikation von VBKomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
672
13.15
Makros auflisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
672
13.16
Die eigene VBADatenbank anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
675
13.17
Der Zugriff auf einzelne Makros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
677
Kapitel 14
Anwendungen optimieren und reparieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
681
14.1
Die automatische Leistungsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
681
Den richtigen Datentyp einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
Programmleichen entfernen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
Variablen deklarieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
Zu viele Steuerelemente meiden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
14.2
Datenbanken dokumentieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
684
14.3
Tabellen optimal anlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
685
Primärschlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
Indizes einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
14.4
Abfragen entsprechend dem Ziel aufsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
687
14.5
Die richtigen Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
687
Objekte exakt deklarieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
Variablen und Konstanten einsetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
Berechnung und Bildschirmaktualisierung ausschalten . . . . . . . . . . . . . . . . . . . . . . . . . . 689
Warnmeldungen ausschalten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
Die Anweisung With . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
14.6
Wie kann ich eine Datenbank reparieren?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
691
Kapitel 15
Access und das Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
693
15.1
EMail verschicken. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
694
TextEMail versenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
EMail über APIFunktion versenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
EMail mit Anhang versenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
Dynamische Auswahl von EMailAdressen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
22
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
EMailVerteiler zusammenstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
Posteingang auslesen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Alle gesendeten Mails dokumentieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
Dateianhänge speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
15.2
MiniBrowser erstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
716
15.3
Arbeiten mit Hyperlinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
717
EMail direkt aus einem Formular absetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
Webabfrage starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
Textfelder mit HyperlinkCharakter erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
Die intelligente Prüfung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
15.4
Datenzugriffsseiten im Internet ablegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
723
Datenzugriffsseiten erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
Datenzugriffsseiten per Code erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Datenzugriffsseiten auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Datenzugriffsseiten anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
Datenzugriffsseiten anpassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
15.5
Tabellen in Internetformate transferieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
731
Tabelle als HTMLDatei abspeichern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
Tabelle in ein XMLDokument umwandeln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
15.6
URLs auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
733
Teil 5
Praxisführer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
737
Kapitel 16
Menüs und Symbolleisten programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
739
16.1
Symbolleisten programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
740
Symbolleiste anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Symbolleisten ein bzw. ausblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
SymbolleistenIDs ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
Symbolleistennamen ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
Symbolschaltflächen (de)aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
Neue Symbolleiste erstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 744
SymbolschaltflächenFaceIDs ermitteln. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
( KOMPENDIUM )
Access-VBA
23
Inhaltsverzeichnis
SymbolschaltflächenIDs ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Symbolschaltflächen einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Symbolleisten schützen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
Symbolleistenschutz entfernen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
Symbolschaltflächen (de)aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 750
16.2
Menüleisten programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
751
Neues Menü einfügen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Menüleiste zurücksetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
Menüs löschen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
Menübefehle einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
Menübefehle gruppieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
Menübefehle mit Makros ausstatten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
Menübefehle auslesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757
Menüs (de)aktivieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
Menübefehle (de)aktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
Kapitel 17
Fehlerbehandlung in Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
761
17.1
Syntaxfehler beheben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
761
17.2
Variablen definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
762
17.3
Variablen richtig definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
762
17.4
Objekte stehen nicht zur Verfügung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
763
17.5
Eigenschaft oder Methode für Objekt nicht verfügbar . . . . . . . . . . . . . . . . . . . . . . .
765
17.6
Schwerer wiegende Fehler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
765
Fehler im Vorfeld erkennen und reagieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
Laufzeitfehler ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
769
Anhang A
FAQ für Access-Entwickler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
771
A.1
Wie kann ich ein Feld an eine Tabelle anhängen?. . . . . . . . . . . . . . . . . . . . . . . . . .
772
A.2
... die Eingabe in ein Formular limitieren?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
772
A.3
... verhindern, dass ein Formular geschlossen wird? . . . . . . . . . . . . . . . . . . . . . . .
774
24
( KOMPENDIUM )
Access-VBA
Inhaltsverzeichnis
A.4
... meine Rechnungsfälligkeiten überwachen? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
775
A.5
... eine blinkende Schaltfläche erstellen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
776
A.6
... Passwörter abfragen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
777
Formularfelder ausblenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
Passwortabfrage durchführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
A.7
... eine Tabelle verlinken? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
779
A.8
... sehen, welche Tabellen verlinkt sind? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
780
Verknüpfte Tabellen aktualisieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
Verknüpfungsadresse anpassen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
A.9
... alle Tabellen verlinken? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
782
A.10
... ein Formular mit einem Ereignis ausstatten? . . . . . . . . . . . . . . . . . . . . . . . . . . .
784
A.11
... eine Hintergrundfarbe für ein Formular per Zufallsprinzip einstellen? . . . . . . . . .
786
A.12
... ein Kombinationsfeld in einem ungebundenen Formular füllen? . . . . . . . . . . . . .
788
A.13
... ein Formular ohne Navigationsschaltflächen anzeigen? . . . . . . . . . . . . . . . . . . .
789
A.14
... die nächste verfügbare Bestellnummer ermitteln? . . . . . . . . . . . . . . . . . . . . . . .
790
A.15
... den letzten Datensatz einer Tabelle einstellen? . . . . . . . . . . . . . . . . . . . . . . . . .
791
A.16
... den letzten Satz in einem Formular einstellen? . . . . . . . . . . . . . . . . . . . . . . . . .
792
A.17
... Leerzeichen aus Textfeldern entfernen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
792
A.18
... die Summe aller Preise einer Tabelle erkennen? . . . . . . . . . . . . . . . . . . . . . . . .
793
A.19
... die Anzahl von Datenbanken ermitteln? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
795
A.20
... die Statuszeile für meine Programmierung nützen? . . . . . . . . . . . . . . . . . . . . . .
795
A.21
... DMWerte in Euro umrechnen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
798
A.22
... Access über einen VBABefehl beenden? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
800
A.23
... Makros aus anderen OfficeKomponenten von Access aus starten? . . . . . . . . . .
801
ExcelMakro starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
WordMakro starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
A.24
... Systemmeldungen in Access temporär ausschalten? . . . . . . . . . . . . . . . . . . . . .
802
A.25
... meine installierten Drucker ermitteln? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
803
A.26
... den integrierten DruckenDialog einsetzen? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
803
( KOMPENDIUM )
Access-VBA
25
Inhaltsverzeichnis
Anhang B
Hilfequellen zu Access (weltweit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
805
B.1
Zugriff auf Diskussionsforen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
805
Die Einrichtung eines Diskussionsforums von Microsoft unter Outlook Express. . . . . . . . . . 805
Homepagegestützte Foren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
Die Spielregeln in Diskussionsforen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
B.2
VBADatenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
810
B.3
AccessSeiten im Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
810
Die Homepage von Karl Donaubauer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Die AccessHomepage von Reinhard Kraasch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Der AccessProfiPool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Die AccessHomepage von Thomas Klar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Mario Hergers AccessArchive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Die AccessHomepage von Thomas Garhammer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
Anhang C
Die Listings des Buches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
813
Anhang D
Die CD-ROM zum Buch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
829
Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
831
26
( KOMPENDIUM )
Access-VBA
Herunterladen