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