14

Access-VBA in 14 Tagen – *ISBN 978-3 ...Inhaltsverzeichnis 7 Tag 3 Die Access-Objekte und Methoden. . . . . . . . . . . . . . . . . . . . . .101 3.1 AccessObject-Objekt

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

5

InhaltsverzeichnisInhaltsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Liebe Leserin, lieber Leser! . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Wochenvorschau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Tag 1 Die Entwicklungsumgebung von Access. . . . . . . . . . . . . . . . . . 231.1 Das Objektmodell von Access . . . . . . . . . . . . . . . . . . . . . . 241.2 Die Entwicklungsplattform von Access-VBA . . . . . . . . . . . 27

Das Code-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Das Eigenschaften-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . 29Das Direktfenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Das Überwachungsfenster . . . . . . . . . . . . . . . . . . . . . . . . . 31Das Lokal-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

1.3 Die Symbolleisten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Die Symbolleiste Bearbeiten . . . . . . . . . . . . . . . . . . . . . . . 36Die Symbolleiste Debuggen. . . . . . . . . . . . . . . . . . . . . . . . 42

1.4 Typische Aufgaben in der Entwicklungsumgebung . . . . . 44So wird die automatische Syntaxprüfung durchgeführt. . . 44So durchlaufen Sie eine Prozedur Schritt für Schritt . . . . 45So suchen Sie bestimmte Codestücke . . . . . . . . . . . . . . . . 46So lauten die wichtigsten Tastenkombinationen . . . . . . . . 47So importieren/exportieren Sie Quellcodes und Formulare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48So schützen Sie Ihren Quellcode. . . . . . . . . . . . . . . . . . . . 50So erfahren Sie mehr über einen Befehl . . . . . . . . . . . . . . 52So recherchieren Sie im Internet . . . . . . . . . . . . . . . . . . . . 52So können Sie andere Bibliotheken nützen. . . . . . . . . . . . 53

1.5 Weitere Einstellungen für die Entwicklungsplattform. . . . 55Editor-Einstellungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Editierformat festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Allgemeine Einstellungen vornehmen. . . . . . . . . . . . . . . . 58Fenster verankern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Sicherheitswarnungen abschalten . . . . . . . . . . . . . . . . . . . 60Makroausführung ermöglichen . . . . . . . . . . . . . . . . . . . . . 61

24220_Access-VBA.book Seite 5 Mittwoch, 21. November 2007 9:01 09

6

Inhaltsverzeichnis

1.6 Die ersten Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62So geben Sie ein mehrzeiliges Infofenster aus . . . . . . . . . . 63So erstellen Sie eine Meldung mit Rückfrage . . . . . . . . . . 64So rufen Sie einen Eingabedialog auf . . . . . . . . . . . . . . . . 66

1.7 Fragen & Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671.8 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681.9 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Tag 2 Variablen, Konstanten und Operatoren . . . . . . . . . . . . . . . . . . . 69So lautet die Syntax für Variablen . . . . . . . . . . . . . . . . . . . 70So wird die Namenskonvention von Gregory Reddick angewendet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70So deklarieren Sie Variablen . . . . . . . . . . . . . . . . . . . . . . . 72So definieren Sie statische Variablen . . . . . . . . . . . . . . . . . 72So definieren Sie private Variablen . . . . . . . . . . . . . . . . . . 73So definieren Sie öffentliche Variablen . . . . . . . . . . . . . . . 74So erzwingen Sie eine Variablendeklaration . . . . . . . . . . . 74So lauten die wichtigsten Variablentypen . . . . . . . . . . . . . 75So verwenden Sie Variablen in Kurzform . . . . . . . . . . . . . 76So übergeben Sie Variablen . . . . . . . . . . . . . . . . . . . . . . . . 77So erstellen Sie Objektvariablen. . . . . . . . . . . . . . . . . . . . . 77

2.1 So legen Sie Datenfelder an . . . . . . . . . . . . . . . . . . . . . . . . 80So legen Sie ein eindimensionales Datenfeld an. . . . . . . . 80So legen Sie ein mehrdimensionales Datenfeld an . . . . . . 82

2.2 Die Verwendung von Konstanten. . . . . . . . . . . . . . . . . . . . 84So setzen Sie Datumsformat-Konstanten ein . . . . . . . . . . . 85So wenden Sie Dir-Konstanten an . . . . . . . . . . . . . . . . . . . 90So arbeiten Sie mit File Input/Output-Konstanten . . . . . . 92So nützen Sie die Shell-Konstanten . . . . . . . . . . . . . . . . . . 94

2.3 Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96So arbeiten Sie mit arithmetischen Operatoren . . . . . . . . 96So setzen Sie Vergleichsoperatoren ein . . . . . . . . . . . . . . . 97So funktioniert der Verkettungsoperator . . . . . . . . . . . . . . 98So arbeiten Sie mit logischen Operatoren . . . . . . . . . . . . . 98

2.4 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992.5 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

24220_Access-VBA.book Seite 6 Mittwoch, 21. November 2007 9:01 09

Inhaltsverzeichnis

7

Tag 3 Die Access-Objekte und Methoden . . . . . . . . . . . . . . . . . . . . . . 1013.1 AccessObject-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

AllModules-Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103AllTables-Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103AllQueries-Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

3.2 Application-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105CurrentProject-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . 105CurrentDb-Methode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107CurrentUser-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Printers-Auflistung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108CloseCurrentDatabase-Methode . . . . . . . . . . . . . . . . . . . . 109Quit-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Version-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

3.3 CodeData-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113.4 Control-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123.5 DataAccessPage-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133.6 DoCmd-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

ApplyFilter-Methode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Close-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115CopyObject-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116DeleteObject-Methode. . . . . . . . . . . . . . . . . . . . . . . . . . . . 118GoToControl-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 118GoToRecord-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Maximize- und Minimize-Methode. . . . . . . . . . . . . . . . . . 121MoveSize-Methode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121OpenReport-Methode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122OpenForm-Methode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124OutPutTo-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126PrintOut-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Rename-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Restore-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130RunCommand-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . 130RunSQL-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132SendObject-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133ShowAllRecords-Methode . . . . . . . . . . . . . . . . . . . . . . . . . 137ShowToolbar-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137TransferDatabase-Methode. . . . . . . . . . . . . . . . . . . . . . . . . 138TransferSpreadsheet-Methode . . . . . . . . . . . . . . . . . . . . . . 140TransferText-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

24220_Access-VBA.book Seite 7 Mittwoch, 21. November 2007 9:01 09

8

Inhaltsverzeichnis

3.7 FormatCondition-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . 149Add- und Delete-Methode . . . . . . . . . . . . . . . . . . . . . . . . . 150

3.8 Reference-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151References-Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

3.9 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1533.10 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Tag 4 Die wichtigsten Sprachelemente in Access. . . . . . . . . . . . . . . . 1554.1 Verzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

So werten Sie Eingaben aus . . . . . . . . . . . . . . . . . . . . . . . . 157So prüfen und wandeln Sie Eingaben um . . . . . . . . . . . . 158Eine Besonderheit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

4.2 Die Anweisung Select Case für mehr Übersicht . . . . . . . . 163So prüfen Sie Zahlenwerte . . . . . . . . . . . . . . . . . . . . . . . . . 163So prüfen Sie Textwerte mit Select Case . . . . . . . . . . . . . . 165So unterscheiden Sie zwischen Buchstaben und Zahlen . 167So stellen Sie die Access-Version fest . . . . . . . . . . . . . . . . . 168So werten Sie den angemeldeten Benutzer aus . . . . . . . . . 169So prüfen Sie den Wochentag . . . . . . . . . . . . . . . . . . . . . . 170So werten Sie die Schaltflächen in einem Dialog aus . . . . 171

4.3 For Next-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172So schließen Sie alle Formulare bis auf eines . . . . . . . . . . 175So finden Sie über eine Nummer zum Mitarbeiter . . . . . 175So lesen Sie markierte Einträge aus einer Listbox . . . . . . . 177So legen Sie eine Kunstpause in Access ein. . . . . . . . . . . . 178So finden Sie fehlerhafte Verweise. . . . . . . . . . . . . . . . . . . 180So lesen Sie eine Tabelle aus (Variante 1). . . . . . . . . . . . . 181

4.4 For Each Next-Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . 183So ermitteln Sie die Namen aller geöffneten Formulare in der Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184So ermitteln Sie, ob ein Formular geladen ist . . . . . . . . . . 184So geben Sie alle Namen der Module aus . . . . . . . . . . . . . 186So ermitteln Sie die Namen von Steuerelementen in einem Formular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187So formatieren Sie Steuerelemente blitzschnell . . . . . . . . 188So lesen Sie die Namen aller Datenbanken aus einem Verzeichnis aus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189So lesen Sie die Namen und Pfade aller eingebundenen Bibliotheken aus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

24220_Access-VBA.book Seite 8 Mittwoch, 21. November 2007 9:01 09

Inhaltsverzeichnis

9

4.5 Die Schleife Do Until Loop . . . . . . . . . . . . . . . . . . . . . . . . 191So wird geloopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192So können Sie Steuerelemente identifizeren. . . . . . . . . . . 193So lesen Sie eine Tabelle aus (Variante 2). . . . . . . . . . . . . 194

4.6 Die Schleife Do While Loop . . . . . . . . . . . . . . . . . . . . . . . 195So können Sie alle Datenbanken in einem Verzeichnis zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196So zählen Sie alle Dateien in einem Verzeichnis . . . . . . . 198So listen Sie Verzeichnisse auf . . . . . . . . . . . . . . . . . . . . . . 199

4.7 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2004.8 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Tag 5 Standardfunktionen in VBA einsetzen . . . . . . . . . . . . . . . . . . . 2015.1 Die Datums- und Zeitfunktionen. . . . . . . . . . . . . . . . . . . . 202

So wandeln Sie eine Zeichenfolge in ein Datumsformat um . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204So lesen Sie das aktuelle Systemdatum aus . . . . . . . . . . . . 204So errechnen Sie einen Liefertermin. . . . . . . . . . . . . . . . . 205So ermitteln Sie aus einem Datum die dazugehörige Kalenderwoche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206So errechnen Sie die Tage bis zum Jahresende. . . . . . . . . 209So geben Sie die Tage eines Monats aus . . . . . . . . . . . . . . 210So konvertieren Sie ungewöhnliche Datumsangaben. . . . 211So zerlegen Sie eine Datumsangabe . . . . . . . . . . . . . . . . . 212So ermitteln Sie das letzte Änderungsdatum einer Datenbank. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213So formatieren Sie ein Datum auf unterschiedliche Weise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214So öffnen Sie automatisch eine Monatstabelle . . . . . . . . . 215So ermitteln Sie den Monatsnamen auf Basis einer Datumsangabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216So ermitteln Sie den Wochentag aus einem Datum . . . . . 217

5.2 Die Textfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219So entfernen Sie Buchstaben aus Eingaben . . . . . . . . . . . 221So wandeln Sie Zahlen in Buchstaben um . . . . . . . . . . . . 222So überprüfen Sie, ob eine E-Mail-Adresse stimmt . . . . . . 223So extrahieren Sie den Dateinamen aus dem Pfad . . . . . . 226So können Sie eine Zeichenfolge zerlegen . . . . . . . . . . . . 227So wandeln Sie einen Text in Kleinbuchstaben um . . . . . 228

24220_Access-VBA.book Seite 9 Mittwoch, 21. November 2007 9:01 09

10

Inhaltsverzeichnis

So führen Sie einen Versionscheck durch . . . . . . . . . . . . . 229So überprüfen Sie eine Eingabe. . . . . . . . . . . . . . . . . . . . . 230So zerlegen Sie einen Text Buchstabe für Buchstabe . . . . 231So können Sie Zeichen austauschen . . . . . . . . . . . . . . . . . 233So füllen Sie einen Text mit einem Füllzeichen auf . . . . 235Trim-Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

5.3 Die Datei-Funktionen und -Anweisungen . . . . . . . . . . . . . 236So listen Sie alle Dateien aus einem Verzeichnis auf . . . . 238So lesen Sie eine Textdatei Zeile für Zeile ein . . . . . . . . . 240So überprüfen Sie, ob eine bestimmte Datei existiert . . . . 241So können Sie einzelne Zeichen aus einer Textdatei lesen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241So starten Sie eine externe Anwendung . . . . . . . . . . . . . . . 242

5.4 Mathematische Funktionen . . . . . . . . . . . . . . . . . . . . . . . . 244So können Sie den Absolutwert einer Zahl bestimmen . . 246So errechnen Sie den Abschreibungswert . . . . . . . . . . . . . 247So schneiden Sie Zahlen hinterm Komma ab. . . . . . . . . . 248So ermitteln Sie den Vorkommawert einer Zahl . . . . . . . . 249So runden Sie Zahlenwerte . . . . . . . . . . . . . . . . . . . . . . . . 250So werten Sie das Vorzeichen einer Zahl aus . . . . . . . . . . 251So errechnen Sie die Quadratwurzel einer Zahl . . . . . . . . 251

5.5 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2525.6 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

Tag 6 Eigene Funktionen programmieren . . . . . . . . . . . . . . . . . . . . . . 2536.1 Der Aufbau einer Funktion. . . . . . . . . . . . . . . . . . . . . . . . . 2546.2 Typische Beispiele für den Einsatz eigener Funktionen . . 256

So ersetzen Sie Umlaute. . . . . . . . . . . . . . . . . . . . . . . . . . . 256So eliminieren Sie sonstige Zeichen . . . . . . . . . . . . . . . . . 259So entfernen Sie Zahlen aus Texten . . . . . . . . . . . . . . . . . 260So entfernen Sie Buchstaben aus »Texten« . . . . . . . . . . . . 262So entfernen Sie alle Leerzeichen in einem Text . . . . . . . 263So ermitteln Sie den ersten Buchstaben in einem Text . . 264So können Sie Zahlen als Text ausgeben. . . . . . . . . . . . . . 267So bilden Sie automatisch Initialen . . . . . . . . . . . . . . . . . . 269So greifen Sie auf die Dokumenteigenschaften zu . . . . . . 270So können Sie eine Zufallszahl erzeugen . . . . . . . . . . . . . 272So prüfen Sie, ob ein Formular geladen ist . . . . . . . . . . . . 273So zählen Sie ein bestimmtes Zeichen in einem Text . . . 274

24220_Access-VBA.book Seite 10 Mittwoch, 21. November 2007 9:01 09

Inhaltsverzeichnis

11

So prüfen Sie, ob eine bestimmte Applikation verfügbar ist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275So überprüfen Sie die Existenz eines Verzeichnisses . . . . 276So prüfen Sie die Existenz einer Datei. . . . . . . . . . . . . . . . 278So können Sie die Existenz einer Tabelle prüfen . . . . . . . 279So können Sie die Wochentage zwischen zwei Datumsangaben zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . 280So können Sie römische Ziffern in arabische Zahlen umwandeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283So konvertieren Sie arabische Zahlen in römische Ziffern 285So können Sie den Bremsweg eines Autos berechnen . . . 286So errechen Sie die Leistung pro Stunde. . . . . . . . . . . . . . 288So berechnen Sie Kilometer/Stunde . . . . . . . . . . . . . . . . . 289So berechnen Sie das Idealgewicht . . . . . . . . . . . . . . . . . . 290So berechnen Sie Brutto und Netto . . . . . . . . . . . . . . . . . . 292

6.3 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2936.4 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Tag 7 Tabellen programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2957.1 Einfache Aufgaben mit DoCmd. . . . . . . . . . . . . . . . . . . . . 296

So öffnen Sie eine Tabelle . . . . . . . . . . . . . . . . . . . . . . . . . 296So öffnen Sie eine Tabelle und finden einen bestimmten Datensatz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297So speichern Sie eine Tabelle im HTML/XML-Format. . 299So exportieren Sie eine Tabelle nach Excel . . . . . . . . . . . 300So können Sie Tabellen filtern. . . . . . . . . . . . . . . . . . . . . . 301So können Sie Tabellen kopieren . . . . . . . . . . . . . . . . . . . 302

7.2 Komplexere Aufgaben mit ADO & SQL . . . . . . . . . . . . . . 303So stellen Sie eine Verbindung zu einer Datenbank her . 304So lesen Sie eine Tabelle komplett aus . . . . . . . . . . . . . . . 305So schreiben Sie nur bestimmte Felder einer Tabelle in eine Textdatei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308So lesen Sie bestimmte Felder in das Direktfenster ein . . 310So erstellen Sie eine Unikatliste . . . . . . . . . . . . . . . . . . . . . 312So prüfen Sie, ob eine Tabelle leer ist . . . . . . . . . . . . . . . . 315So bestimmen Sie den letzten Satz einer Tabelle . . . . . . . 317So ermitteln Sie den ersten Satz einer Tabelle, der einem bestimmten Kriterium entspricht . . . . . . . . . . . . . . . . . . . . 318So ermitteln Sie aus einer ID die dazugehörige Kategorie 319

24220_Access-VBA.book Seite 11 Mittwoch, 21. November 2007 9:01 09

12

Inhaltsverzeichnis

So geben Sie Datensätze sortiert aus . . . . . . . . . . . . . . . . . 320So fragen Sie mehrere Tabellen auf einmal ab . . . . . . . . . 323So spielen Sie nur bestimmte Daten aus mehreren Tabellen zusammen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324So können Sie einen Zeitraum in einer Tabelle abfragen 326So ermitteln Sie die kleinsten Werte einer Tabelle . . . . . . 327So ermitteln Sie den größten und kleinsten Wert einer Tabelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329So ermitteln Sie den Durchschnitt eines Datenfeldes. . . . 330So ermitteln Sie den Durchschnitt auf einer aggregierten Stufe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332So können Sie bestimmte Daten in einer Tabelle finden . 334So verändern Sie Feldinhalte einer Tabelle . . . . . . . . . . . 338So können Sie Datensätze in einer Tabelle filtern und ausgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339So können Sie Datensätze aus einer Tabelle löschen . . . . 341So fügen Sie neue Datensätze hinzu . . . . . . . . . . . . . . . . . 342

7.3 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3447.4 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

Wochenvorschau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

Tag 8 Programmierung von Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . 3478.1 Die Abfragetypen von Access . . . . . . . . . . . . . . . . . . . . . . . 3488.2 Abfragen mithilfe von DoCmd. . . . . . . . . . . . . . . . . . . . . . 349

So starten Sie eine Abfrage mit OpenQuery . . . . . . . . . . . 349So führen Sie eine Abfrage mit RunSQL durch. . . . . . . . 351So setzen Sie den Lagerbestand auf null . . . . . . . . . . . . . . 352So reduzieren Sie alle Preise einer Tabelle . . . . . . . . . . . . 353So reduzieren Sie die Preise eines bestimmten Lieferanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353So löschen Sie bestimmte Daten aus einer Tabelle. . . . . . 354So löschen Sie alle Daten aus einer Tabelle . . . . . . . . . . . 356So löschen Sie Daten aus bestimmten Tabellen . . . . . . . . 357So erstellen Sie eine neue Tabelle . . . . . . . . . . . . . . . . . . . 358So können Sie identische Artikel in zwei Tabellen ermitteln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359So ermitteln Sie gleiche und neue Artikel in Tabellen . . . 362So können Sie mehrere Tabellen zusammenspielen . . . . 364

24220_Access-VBA.book Seite 12 Mittwoch, 21. November 2007 9:01 09

Inhaltsverzeichnis

13

So können Sie die Bestellungen pro Hersteller zählen . . . 366So können Sie den Lagerwert pro Lieferant errechnen. . . 367

8.3 So erstellen Sie Abfragen mit VBA. . . . . . . . . . . . . . . . . . . 370So erstellen Sie eine Artikelliste . . . . . . . . . . . . . . . . . . . . . 370So erstellen Sie eine Lieferantenliste . . . . . . . . . . . . . . . . . 372So erstellen Sie eine Abfrage über das Katalog-Objekt . . . 374So erstellen Sie eine Parameterabfrage . . . . . . . . . . . . . . . 378

8.4 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3808.5 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

Tag 9 Formulare entwerfen und automatisieren . . . . . . . . . . . . . . . . . 3819.1 Formulare selbst erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . 3829.2 Die Steuerelemente aus der Toolbox . . . . . . . . . . . . . . . . . 3829.3 Steuerelemente einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . 386

So bearbeiten Sie Steuerelemente . . . . . . . . . . . . . . . . . . . 387So richten Sie Steuerelemente aus. . . . . . . . . . . . . . . . . . . 387So passen Sie die Aktivierreihenfolge an . . . . . . . . . . . . . . 388So formatieren Sie Formularfelder. . . . . . . . . . . . . . . . . . . 390So stellen Sie Formulareigenschaften ein . . . . . . . . . . . . . 390So stellen Sie Steuerelementeigenschaften ein . . . . . . . . . 393So fügen Sie Schaltflächen ein. . . . . . . . . . . . . . . . . . . . . . 394

9.4 So identifizieren Sie Steuerelemente. . . . . . . . . . . . . . . . . 3989.5 So rufen Sie ein Formular auf . . . . . . . . . . . . . . . . . . . . . . 4009.6 So schließen Sie ein Formular . . . . . . . . . . . . . . . . . . . . . . 4029.7 Beispiele zum Einsatz von Steuerelementen . . . . . . . . . . . 403

So aktivieren und sperren Sie Textfelder . . . . . . . . . . . . . . 403So füllen Sie Listboxen und werten sie aus . . . . . . . . . . . . 405So kombinieren Sie Kombinationsfeld mit Listenfeld. . . . 408So programmieren Sie Kontrollkästchen . . . . . . . . . . . . . . 409So erzeugen Sie einen Fortschrittsbalken . . . . . . . . . . . . . 411So binden Sie das Kalender-Steuerelement ein. . . . . . . . . 413

9.8 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4159.9 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

Tag 10 Berichte programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41710.1 Berichtsarten in Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41810.2 Berichtsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419

24220_Access-VBA.book Seite 13 Mittwoch, 21. November 2007 9:01 09

14

Inhaltsverzeichnis

10.3 DoCmd-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420So öffnen Sie Berichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420So schließen Sie Berichte . . . . . . . . . . . . . . . . . . . . . . . . . . 423So passen Sie die Größe von Berichten an . . . . . . . . . . . . 423So nützen Sie die Methode RunCommand . . . . . . . . . . . 424So drucken Sie einen Bericht aus. . . . . . . . . . . . . . . . . . . . 425So drucken Sie Berichte noch schneller aus . . . . . . . . . . . 427So kopieren Sie einen Bericht . . . . . . . . . . . . . . . . . . . . . . 427So benennen Sie einen Bericht um . . . . . . . . . . . . . . . . . . 428So können Sie einen Bericht exportieren . . . . . . . . . . . . . 429

10.4 Sonstiges im Umfeld von Berichten. . . . . . . . . . . . . . . . . . 431So fügen Sie zusätzliche Felder in Berichten ein . . . . . . . 431So färben Sie Berichte ein . . . . . . . . . . . . . . . . . . . . . . . . . 432So können Sie Berichte identifizieren . . . . . . . . . . . . . . . . 434So können Sie Steuerelemente identifizieren . . . . . . . . . . 435So blenden Sie Berichtselemente ein und aus. . . . . . . . . . 438So legen Sie einen Bericht per Prozedur an . . . . . . . . . . . 439So fügen Sie Steuerelemente in einen Bericht ein . . . . . . 440

10.5 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44310.6 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443

Tag 11 Ereignisse programmieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44511.1 Das Ereignis Form_Open . . . . . . . . . . . . . . . . . . . . . . . . . 44611.2 Das Ereignis Form_Close . . . . . . . . . . . . . . . . . . . . . . . . . . 44811.3 Das Ereignis Form_Load . . . . . . . . . . . . . . . . . . . . . . . . . . 45011.4 Das Ereignis Form_Current . . . . . . . . . . . . . . . . . . . . . . . . 45111.5 Das Ereignis Form_AfterInsert . . . . . . . . . . . . . . . . . . . . . . 45211.6 Das Ereignis Form_BeforeUpdate . . . . . . . . . . . . . . . . . . . 45411.7 Das Ereignis Form_AfterUpdate. . . . . . . . . . . . . . . . . . . . . 45611.8 Das Ereignis Form_Delete . . . . . . . . . . . . . . . . . . . . . . . . . 45611.9 Das Ereignis Form_Dirty . . . . . . . . . . . . . . . . . . . . . . . . . . 45711.10 Das Ereignis BeforeDelConfirm . . . . . . . . . . . . . . . . . . . . 45711.11 Das Ereignis Form_AfterDelConfirm . . . . . . . . . . . . . . . . 45811.12 Das Ereignis Form_Activate . . . . . . . . . . . . . . . . . . . . . . . . 45911.13 Das Ereignis Form_Deactivate . . . . . . . . . . . . . . . . . . . . . . 46011.14 Das Ereignis Form_Resize . . . . . . . . . . . . . . . . . . . . . . . . . 46111.15 Das Ereignis Form_DblClick . . . . . . . . . . . . . . . . . . . . . . . 461

24220_Access-VBA.book Seite 14 Mittwoch, 21. November 2007 9:01 09

Inhaltsverzeichnis

15

11.16 Das Ereignis Form_Click bzw. Detail_Click . . . . . . . . . . . 46311.17 Die Ereignisse Form_MouseDown und Form_MouseUp 46411.18 Das Ereignis MouseMove. . . . . . . . . . . . . . . . . . . . . . . . . . 46711.19 Die Ereignisse GotFocus und LostFocus . . . . . . . . . . . . . . 46911.20 Tasten-Ereignisse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47011.21 Das Ereignis Steuerelement_BeforeUpdate. . . . . . . . . . . . 47211.22 Das Ereignis Steuerelement_Enter . . . . . . . . . . . . . . . . . . 47311.23 Das Ereignis Steuerelement_Exit . . . . . . . . . . . . . . . . . . . . 47511.24 Die Reihenfolge der Ereignisse . . . . . . . . . . . . . . . . . . . . . 476

Reihenfolge beim Öffnen und Schließen eines Formulars . 476Aktivierreihenfolge bei Steuerelementen. . . . . . . . . . . . . . 477Reihenfolge der Aktualisierungsereignisse . . . . . . . . . . . . . 478In der Praxis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

11.25 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47911.26 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

Tag 12 Access im Zusammenspiel mit Office . . . . . . . . . . . . . . . . . . . . 48112.1 Early- und Late-Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . 482

So funktioniert »Early-Binding«. . . . . . . . . . . . . . . . . . . . . 482So funktioniert »Late-Binding« . . . . . . . . . . . . . . . . . . . . . 482

12.2 Access & Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483Die Voraussetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484Die Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484Standardaufgaben beim Starten der UserForm durchführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485Bezeichnungsfeld definieren . . . . . . . . . . . . . . . . . . . . . . . 486Access-Datenbank anlegen . . . . . . . . . . . . . . . . . . . . . . . . . 487Die Suchfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487Den Klick aufs Listenfeld auswerten . . . . . . . . . . . . . . . . . 493Der besseren Übersichtlichkeit wegen . . . . . . . . . . . . . . . . 493Textfelder leeren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495Übernahme der Daten in eine Excel-Tabelle . . . . . . . . . . 496Der Datenexport aus Excel. . . . . . . . . . . . . . . . . . . . . . . . . 497Datenbankabfrage durchführen . . . . . . . . . . . . . . . . . . . . . 499

12.3 Access & Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502Outlook bereits gestartet? . . . . . . . . . . . . . . . . . . . . . . . . . . 502E-Mail-Adressen aus Outlook herauslesen (Early-Binding). 504

24220_Access-VBA.book Seite 15 Mittwoch, 21. November 2007 9:01 09

16

Inhaltsverzeichnis

Kontaktdaten nach Outlook übertragen . . . . . . . . . . . . . . . 505Kontaktdaten von Outlook importieren . . . . . . . . . . . . . . . 510

12.4 Access & Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514Ist Word bereits gestartet? . . . . . . . . . . . . . . . . . . . . . . . . . . 514Access-Tabelle in ein Dokument übertragen. . . . . . . . . . . 516

12.5 Access & Internet Explorer . . . . . . . . . . . . . . . . . . . . . . . . . 521Eine Diashow programmieren . . . . . . . . . . . . . . . . . . . . . . 521

12.6 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52412.7 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524

Tag 13 VBE-Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52513.1 So binden Sie die VBE-Bibliothek ein . . . . . . . . . . . . . . . . 52613.2 Das VBE-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527

So ermitteln Sie den Projektnamen . . . . . . . . . . . . . . . . . . 528So können Sie Verweise auslesen. . . . . . . . . . . . . . . . . . . . 528So ermitteln Sie ungültige Verweise . . . . . . . . . . . . . . . . . 529So können Sie einen Verweis setzen . . . . . . . . . . . . . . . . . 530So binden Sie eine Bibliothek ein . . . . . . . . . . . . . . . . . . . 531So können Sie einen Verweis entfernen . . . . . . . . . . . . . . 531So blenden Sie die Entwicklungsumgebung ein . . . . . . . . 532So fügen Sie ein neues Modul ein . . . . . . . . . . . . . . . . . . . 533So entfernen Sie ein Modul . . . . . . . . . . . . . . . . . . . . . . . . 534So löschen Sie Codezeilen . . . . . . . . . . . . . . . . . . . . . . . . . 535So können Sie Codezeilen zählen . . . . . . . . . . . . . . . . . . . 537So können Sie alle Prozeduren auflisten . . . . . . . . . . . . . . 538So können Sie Codezeilen einfügen . . . . . . . . . . . . . . . . . 540So können Sie Quellcode importieren. . . . . . . . . . . . . . . . 541So starten Sie eine Prozedur. . . . . . . . . . . . . . . . . . . . . . . . 542So können Sie Quellcode exportieren . . . . . . . . . . . . . . . . 542

13.3 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54313.4 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543

Tag 14 Menüs, Symbolleisten und die Access 2007-Multifunktions- leiste programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54514.1 Allgemeines zu Menü- und Symbolleisten . . . . . . . . . . . . 54614.2 Symbolleisten programmieren . . . . . . . . . . . . . . . . . . . . . . 548

So blenden Sie Symbolleisten ein und aus . . . . . . . . . . . . 549So blenden Sie alle Symbolleisten ein bzw. aus . . . . . . . . 550So ermitteln Sie die Symbolleisten-IDs . . . . . . . . . . . . . . . 551

24220_Access-VBA.book Seite 16 Mittwoch, 21. November 2007 9:01 09

Inhaltsverzeichnis

17

So lesen Sie die Symbolleistennamen aus . . . . . . . . . . . . . 553So sprechen Sie Symbolschaltflächen an . . . . . . . . . . . . . 553So erstellen Sie eine neue Symbolleiste. . . . . . . . . . . . . . . 555So bestimmen Sie das Aussehen einer Symbolschaltfläche. 556So lesen Sie die ID einer Symbolschaltfläche aus . . . . . . 557So fügen Sie Symbolschaltflächen ein . . . . . . . . . . . . . . . . 558So schützen Sie Symbolleisten. . . . . . . . . . . . . . . . . . . . . . 561So entfernen Sie den Symbolleistenschutz . . . . . . . . . . . . 562So (de)aktivieren Sie Symbolschaltflächen . . . . . . . . . . . . 563

14.3 Menüleisten programmieren . . . . . . . . . . . . . . . . . . . . . . . 564 So fügen Sie ein neues Menü ein . . . . . . . . . . . . . . . . . . . 566So setzen Sie die Menüleiste zurück . . . . . . . . . . . . . . . . . 568 So löschen Sie ein Menü. . . . . . . . . . . . . . . . . . . . . . . . . . 568 So fügen Sie neue Menübefehle ein. . . . . . . . . . . . . . . . . 569 So gruppieren Sie Menübefehle . . . . . . . . . . . . . . . . . . . . 571 So weisen Sie Menübefehlen Prozeduren zu . . . . . . . . . . 571 So lesen Sie Menübefehle aus. . . . . . . . . . . . . . . . . . . . . . 572So (de)aktivieren Sie Menüs. . . . . . . . . . . . . . . . . . . . . . . . 574So (de)aktivieren Sie Menübefehle . . . . . . . . . . . . . . . . . . 576

14.4 Die Multifunktionsleiste programmieren. . . . . . . . . . . . . . 576Programmierung über ein XML-Markup. . . . . . . . . . . . . . 577So legen Sie die Tabelle USysRibbons an . . . . . . . . . . . . . 579So stellen Sie eine Ereignis-Prozedur ein . . . . . . . . . . . . . 581So geben Sie das neue Ribbon bekannt . . . . . . . . . . . . . . . 581So laden Sie Ribbons ohne die Tabelle USysRibbon dynamisch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583

14.5 Weitere wichtige Quellen und Hilfen . . . . . . . . . . . . . . . . 58414.6 Quiz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58714.7 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587

Lösungen der Tages-Übungen. . . . . . . . . . . . . . . . . . . . . . . . . . . 589

Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605

24220_Access-VBA.book Seite 17 Mittwoch, 21. November 2007 9:01 09