Doberenz / Gewinnus Access programmieren
1. Auflage 2016
ISBN: 978-3-446-45059-2
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
Grundlagen und Praxiswissen. Für die Versionen 2010, 2013 und 2016
E-Book, Deutsch, 1199 Seiten
ISBN: 978-3-446-45059-2
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
Das Standardwerk zur Access-Programmierung für Einsteiger und Profis
Von den VBA-Grundlagen über fortgeschrittene Datenbankprogrammierung bis zur Anbindung von SQL Server und dem Einsatz in der Cloud bietet Ihnen dieses Handbuch umfassendes Wissen zur Datenbankprogrammierung für die Access-Versionen 2010 bis 2016.
Grundlagen und Praxiswissen
Einsteiger mit Vorkenntnissen erhalten im ersten Teil eine fundierte Einführung in die Datenbankprogrammierung mit Access unter Verwendung von Makros und VBA.
Für fortgeschrittene Programmierer werden im Hauptteil zahlreiche Problemlösungen und universell einsetzbaren Routinen vorgestellt. Dabei lernen Sie unter anderem, wie Sie die Benutzerschnittstelle gestalten und auf die Daten mit verschiedenen Techniken zugreifen.
Aus dem Inhalt
• Programmieren mit VBA
• Einführung in die Makroprogrammierung
• Programmierung von Formularen und Steuerelementen
• Datenbankberichte und Druckersteuerung
• Datenbankzugriff mit DAO und ADO
• Fortgeschrittene Datenbankprogrammierung (DAO, ADOX, ODBC)
• Microsoft SQL Server (SMO, SQL)
• Zugriff auf Azure SQL und SQLite
• Programmschnittstellen (API-Zugriff, DDE, OLE, DLL und.NET)
• Arbeit mit Dateien, XML und SQL
• Entwickeln von Assistenten und Managed Add-Ins
• Programmieren des Menübands (Ribbon)
Die erforderlichen theoretischen Grundlagen werden klar und verständlich vermittelt; bei der Auswahl der besprochenen Beispiele und Konzepte steht immer der praktische Nutzen im Vordergrund; Tipps und Tricks helfen bei der täglichen Arbeit.
• Auf der Website zum Buch finden Sie alle Codebeispiele
• E-Book inside: Mit Ihrem persönlichen Code können Sie die E-Book-Ausgabe diese Buches downloaden.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
1;Inhaltsverzeichnis;6
1.1;Teil I: Grundlagen;6
1.2;Teil II: Datenschnittstellen;12
1.3;Teil III: Weitere Technologien;19
2;Vorwort;28
3;1 Einführung;34
3.1;1.1 VBA-Programmierung in Access;34
3.1.1;1.1.1 Visual Basic versus VBA;34
3.1.2;1.1.2 Objekt- und ereignisorientierte Programmierung;35
3.1.3;1.1.3 VBA- oder Makro-Programmierung?;36
3.1.4;1.1.4 Die VBA-Entwicklungsumgebung;37
3.1.5;1.1.5 Formularentwurf;37
3.1.6;1.1.6 Code-Fenster und Symbolleiste;38
3.1.7;1.1.7 Das Eigenschaftenfenster;39
3.1.8;1.1.8 Der Projekt-Explorer;40
3.1.9;1.1.9 Das Code-Fenster;40
3.1.10;1.1.10 Arbeiten mit der Hilfe;43
3.2;1.2 Sicherheitseinstellungen;44
3.2.1;1.2.1 Zur Geschichte der Access-Sicherheit;44
3.2.2;1.2.2 Eine nicht vertrauenswürdige Datenbank öffnen;45
3.2.3;1.2.3 Das Sicherheitscenter;47
3.2.4;1.2.4 Definition vertrauenswürdiger Speicherorte;50
3.3;1.3 Einführungsbeispiele;51
3.3.1;1.3.1 Erstellen der Testdatenbank;52
3.3.2;1.3.2 Konventionelle Programmierung;53
3.3.3;1.3.3 Programmieren mit VBA;57
3.3.4;1.3.4 Automatische Makrokonvertierung;62
3.3.5;1.3.5 Programmieren mit Datenmakros;63
3.4;1.4 Highlights und Features von Access 2016;65
3.4.1;1.4.1 Zur Geschichte der Vorgängerversionen;65
3.4.2;1.4.2 Microsoft Access 2016 – viel Lärm um nichts?;68
3.4.3;1.4.3 Der inoffizielle Access-Friedhof (Access 2013/2016);69
3.5;1.5 Übersichten und Ergänzungen;69
3.5.1;1.5.1 Deutsche und englische Bezeichner;69
3.5.2;1.5.2 DoCmd-Objekt;71
4;2 Programmieren mit VBA;74
4.1;2.1 Datentypen, Variablen und Konstanten;74
4.1.1;2.1.1 Übersicht;74
4.1.2;2.1.2 Variablendeklaration;75
4.1.3;2.1.3 Konstantendeklaration;80
4.1.4;2.1.4 Gültigkeitsbereiche;81
4.2;2.2 Einzelheiten zu den Datentypen;84
4.2.1;2.2.1 Single- und Double-Datentypen;84
4.2.2;2.2.2 Integer-, Long- und Boolean-Datentypen;84
4.2.3;2.2.3 Date-Datentyp;85
4.2.4;2.2.4 Currency-Datentyp;87
4.2.5;2.2.5 String-Datentyp;88
4.2.6;2.2.6 Variant-Datentyp;90
4.3;2.3 Datenfelder (Arrays);93
4.3.1;2.3.1 Statische Arrays;93
4.3.2;2.3.2 Dynamische Arrays;95
4.4;2.4 Benutzerdefinierte Datentypen;97
4.4.1;2.4.1 Type-Anweisung;97
4.4.2;2.4.2 With-Anweisung;98
4.4.3;2.4.3 Strings innerhalb Type;98
4.4.4;2.4.4 Enumerationen;99
4.4.5;2.4.5 Arrays in benutzerdefinierten Typen;100
4.5;2.5 Operatoren;101
4.5.1;2.5.1 Arithmetische Operatoren;102
4.5.2;2.5.2 Logische Operatoren;104
4.5.3;2.5.3 Vergleichsoperatoren;105
4.6;2.6 Kontrollstrukturen;106
4.6.1;2.6.1 Bedingte Verzweigungen;106
4.6.2;2.6.2 Schleifenanweisungen;108
4.6.3;2.6.3 GoTo und GoSub;110
4.7;2.7 Zeichenkettenfunktionen;111
4.7.1;2.7.1 Stringverarbeitung;111
4.7.2;2.7.2 Format-Funktion;113
4.8;2.8 Vordefinierte Funktionen;117
4.8.1;2.8.1 Mathematische Funktionen;117
4.8.2;2.8.2 Finanzmathematische Funktionen;120
4.8.3;2.8.3 Datums-/Zeitfunktionen;121
4.9;2.9 Benutzerdefinierte Funktionen/Prozeduren;124
4.9.1;2.9.1 Funktion;124
4.9.2;2.9.2 Prozedur;125
4.9.3;2.9.3 Parameterübergabe ByRef oder ByVal;125
4.9.4;2.9.4 Optionale Argumente;126
4.9.5;2.9.5 Benannte Argumente;127
4.9.6;2.9.6 Parameter-Arrays;127
4.9.7;2.9.7 Dynamische Arrays als Argumente;128
4.9.8;2.9.8 Rückgabe von Arrays;128
4.9.9;2.9.9 Private-, Public- und Static-Deklarationen;129
4.10;2.10 Fehlersuche;131
4.10.1;2.10.1 Direktfenster;132
4.10.2;2.10.2 Verwendung des Debug-Objekts;132
4.10.3;2.10.3 Arbeiten mit dem Lokal-Fenster;133
4.10.4;2.10.4 Überwachungs-Fenster;135
4.10.5;2.10.5 Noch mehr Debugging;136
4.11;2.11 Fehlerbehandlung;140
4.11.1;2.11.1 Anweisungen zum Error-Handling;140
4.11.2;2.11.2 Beispiele zum Error-Handling;141
4.11.3;2.11.3 Fehlerbehandlung per Ereignis;143
4.11.4;2.11.4 Fehlerbehandlung komplett deaktivieren;144
4.12;2.12 Standarddialogfelder;144
4.12.1;2.12.1 Einfache Anweisung;145
4.12.2;2.12.2 Ausführliche Anweisung;146
4.12.3;2.12.3 Rückgabewerte der MsgBox-Funktion;146
4.12.4;2.12.4 Abfrage von Werten mit der InputBox-Funktion;148
4.13;2.13 Übersichten und Ergänzungen;149
4.13.1;2.13.1 Datumskonstanten;149
4.13.2;2.13.2 Rückgabewerte der VarType-Funktion;149
4.14;2.14 Praxisbeispiele;150
4.14.1;2.14.1 In einem Textfeld suchen;150
4.14.2;2.14.2 Zeitangaben runden;151
4.14.3;2.14.3 Das Wochenende feststellen;153
4.14.4;2.14.4 Mit dynamischen Arrays rechnen;154
4.14.5;2.14.5 Arbeiten mit dem Debugger;158
5;3 Makros – eine Einführung;164
5.1;3.1 Klassische Makros;164
5.1.1;3.1.1 Entwurfsoberfläche;164
5.1.2;3.1.2 Eigenständige Makros;165
5.1.3;3.1.3 Eingebettete Makros;168
5.1.4;3.1.4 Das AutoKeys-Makro;172
5.1.5;3.1.5 Das AutoExec-Makro;174
5.1.6;3.1.6 Potenziell gefährliche Makroaktionen;174
5.2;3.2 Datenmakros;175
5.2.1;3.2.1 Einsatzmöglichkeitem;176
5.2.2;3.2.2 Funktionsprinzip;176
5.2.3;3.2.3 Erzeugen von Datenmakros;177
5.2.4;3.2.4 Datenmakros umbenennen, löschen und ändern;178
5.2.5;3.2.5 USysApplicationLog;178
5.2.6;3.2.6 Aktionen in Datenmakros;179
5.2.7;3.2.7 Auswahl des richtigen Tabellenereignisses;180
5.3;3.3 Praxisbeispiele;181
5.3.1;3.3.1 Eingabe-Formular mit neuem Datensatz öffnen;182
5.3.2;3.3.2 Einen Datensatznavigator selbst bauen;183
5.3.3;3.3.3 Ein ereignisgesteuertes Datenmakro erstellen;185
5.3.4;3.3.4 Arbeiten mit einem benannten Datenmakro;190
5.3.5;3.3.5 Per VBA auf ein benanntes Datenmakro zugreifen;194
5.3.6;3.3.6 Änderungen von Tabelleninhalten protokollieren;195
6;4 Formulare und Steuerelemente;198
6.1;4.1 Allgemeines;198
6.1.1;4.1.1 Gruppen von Eigenschaften;199
6.1.2;4.1.2 Methoden;199
6.1.3;4.1.3 Gruppen von Ereignissen;199
6.2;4.2 Das Form-Objekt;200
6.2.1;4.2.1 Format-Eigenschaften;200
6.2.2;4.2.2 Daten-Eigenschaften;207
6.2.3;4.2.3 Weitere Eigenschaften;207
6.2.4;4.2.4 Fenster- und Fokus-Ereignisse;209
6.2.5;4.2.5 Tastatur- und Maus-Ereignisse;211
6.2.6;4.2.6 Daten- und Filter-Ereignisse;213
6.2.7;4.2.7 Weitere Ereignisse;215
6.2.8;4.2.8 Methoden;215
6.2.9;4.2.9 Unterformulare;218
6.3;4.3 Steuerelemente (Controls);219
6.3.1;4.3.1 Allgemeines;219
6.3.2;4.3.2 Allgemeine Eigenschaften auf einen Blick;220
6.3.3;4.3.3 Allgemeine Ereignisse auf einen Blick;230
6.3.4;4.3.4 Methoden von Steuerelementen;231
6.3.5;4.3.5 Das Screen-Objekt;232
6.4;4.4 ActiveX-Steuerelemente;234
6.4.1;4.4.1 Vergleich mit den integrierten Steuerelementen;234
6.4.2;4.4.2 StatusBar als Beispiel;236
6.5;4.5 Praxisbeispiele;240
6.5.1;4.5.1 Das Textfeld programmieren;240
6.5.2;4.5.2 In ungebundene Textfelder ein- und ausgeben;242
6.5.3;4.5.3 Ein ungebundenes Kombinationsfeld füllen;243
6.5.4;4.5.4 Ein Unterformular programmieren;246
6.5.5;4.5.5 Das Register-Steuerelement kennen lernen;249
6.5.6;4.5.6 Die Statusleiste programmieren;253
6.5.7;4.5.7 Verwenden von Bild-Ressourcen;256
6.5.8;4.5.8 Programmieren des Navigationssteuerelements;258
7;5 Berichte;262
7.1;5.1 Allgemeines;262
7.1.1;5.1.1 Reportansichten;262
7.1.2;5.1.2 Die OpenReport-Methode;263
7.1.3;5.1.3 Parameterübergabe;264
7.2;5.2 Wichtige Berichtseigenschaften;264
7.2.1;5.2.1 Formateigenschaften;264
7.2.2;5.2.2 Dateneigenschaften;265
7.2.3;5.2.3 Grafikeigenschaften;265
7.2.4;5.2.4 Linien- und Stifteigenschaften;269
7.2.5;5.2.5 Schrifteigenschaften;270
7.2.6;5.2.6 Farb- und Mustereigenschaften;270
7.2.7;5.2.7 Sonstige Eigenschaften;272
7.3;5.3 Berichtsereignisse;274
7.3.1;5.3.1 Allgemeine Ereignisse;274
7.3.2;5.3.2 Tastatur- und Mausereignisse;276
7.4;5.4 Berichtsmethoden;277
7.4.1;5.4.1 Grafikmethoden (Übersicht);277
7.4.2;5.4.2 Scale;277
7.4.3;5.4.3 Line;278
7.4.4;5.4.4 PSet;279
7.4.5;5.4.5 Circle;280
7.4.6;5.4.6 Print;281
7.4.7;5.4.7 TextWidth und TextHeight;282
7.4.8;5.4.8 Sonstige Methoden;283
7.5;5.5 Weitere Features des Report-Objekts;283
7.5.1;5.5.1 Rich-Text-Felder drucken;283
7.5.2;5.5.2 Verlauf eines Memofeldes drucken;284
7.5.3;5.5.3 Eine Liste der Anlagen drucken;284
7.5.4;5.5.4 Berichte nachträglich filtern;287
7.5.5;5.5.5 Berichte als PDF-Datei exportieren;288
7.5.6;5.5.6 Berichte als RTF-Datei exportieren;289
7.6;5.6 Das Printer-Objekt;289
7.6.1;5.6.1 Wo finde ich das Printer-Objekt?;290
7.6.2;5.6.2 Die Printers-Collection;290
7.6.3;5.6.3 Auswahl eines Druckers;291
7.6.4;5.6.4 Speichern von Berichts-Optionen;293
7.6.5;5.6.5 Eigenschaften des Printers;294
7.7;5.7 Direkte Druckausgabe;295
7.8;5.8 Übersichten;295
7.8.1;5.8.1 DrawMode-Eigenschaft;295
7.8.2;5.8.2 Farbkonstanten;296
7.9;5.9 Praxisbeispiele;296
7.9.1;5.9.1 Aufruf eines Berichts mit Datenfilter;296
7.9.2;5.9.2 Im Report gruppieren und rechnen;300
7.9.3;5.9.3 Erstellen und Drucken eines Diagramms;304
7.9.4;5.9.4 Berichte in Formularen anzeigen;308
8;6 Programmieren mit Objekten;310
8.1;6.1 Objektvariablen;310
8.1.1;6.1.1 Objekttypen und Set-Anweisung;310
8.1.2;6.1.2 Object-Datentyp;312
8.1.3;6.1.3 Form- und Report-Objekt;313
8.1.4;6.1.4 Control-Objekt;314
8.2;6.2 Formular- und Berichtsmodule;318
8.2.1;6.2.1 Instanzen von Formularen und Berichten;318
8.2.2;6.2.2 Benutzerdefinierte Form-/Report-Objekte;320
8.2.3;6.2.3 Eigenständige Klassenmodule;321
8.3;6.3 Auflistungen;325
8.3.1;6.3.1 Forms/Reports;325
8.3.2;6.3.2 Controls;326
8.3.3;6.3.3 Collection-Objekt;328
8.3.4;6.3.4 Dictionary-Objekt;330
8.3.5;6.3.5 Property und Properties;330
8.3.6;6.3.6 Module-Objekt und Modules-Auflistung;331
8.3.7;6.3.7 Reference-Objekt und References-Auflistung;333
8.4;6.4 Die Access-Objekthierarchie;335
8.4.1;6.4.1 Der Objektkatalog;335
8.4.2;6.4.2 Das Application-Objekt allgemein;336
8.4.3;6.4.3 Eigenschaften und Methoden des Application-Objekts;339
8.4.4;6.4.4 Weitere wichtige Objekte;344
8.4.5;6.4.5 AccessObject;345
8.4.6;6.4.6 CurrentProject;346
8.4.7;6.4.7 CurrentData;348
8.5;6.5 Übersichten;348
8.5.1;6.5.1 Konstanten der ControlType-Eigenschaft;348
8.5.2;6.5.2 Rückgabewerte der CurrentObjectType-Funktion;349
8.6;6.6 Praxisbeispiele;349
8.6.1;6.6.1 Ein Steuerelemente-Array automatisch erstellen;349
8.6.2;6.6.2 Mit Formular-Instanzen arbeiten;353
8.6.3;6.6.3 Mit einer eigenständigen Klasse experimentieren;355
8.6.4;6.6.4 Auf Objekte in Auflistungen zugreifen;358
8.6.5;6.6.5 Properties-Auflistungen untersuchen;361
9;7 DAO-Programmierung;366
9.1;7.1 Allgemeines;366
9.1.1;7.1.1 DBEngine;366
9.1.2;7.1.2 Workspace-Objekt;367
9.1.3;7.1.3 Database-Objekt;368
9.1.4;7.1.4 Recordset-Objekt;368
9.1.5;7.1.5 Verwendung der Datenbankobjekte;369
9.2;7.2 Grundlegende Arbeitstechniken;369
9.2.1;7.2.1 Arbeitsumgebung festlegen;370
9.2.2;7.2.2 Datenbank anlegen und öffnen;370
9.2.3;7.2.3 Tabellen/Indizes anlegen;374
9.2.4;7.2.4 Tabellen einbinden;379
9.2.5;7.2.5 Tabellen verknüpfen (Relationen);380
9.2.6;7.2.6 Abfragen erstellen/ausführen;382
9.2.7;7.2.7 Öffnen von Tabellen/Abfragen;384
9.3;7.3 Arbeiten mit Recordsets;387
9.3.1;7.3.1 Eigenschaften und Methoden von Recordsets;387
9.3.2;7.3.2 Datensätze anzeigen;390
9.3.3;7.3.3 Datensätze hinzufügen/ändern;392
9.3.4;7.3.4 Datensätze löschen;394
9.3.5;7.3.5 Datensätze sortieren;396
9.3.6;7.3.6 Datensätze suchen;397
9.3.7;7.3.7 Datensätze filtern;398
9.3.8;7.3.8 DAO in gebundenen Formularen;399
9.3.9;7.3.9 Auf Anlage-Felder zugreifen;402
9.3.10;7.3.10 Auf mehrwertige Felder zugreifen;405
9.3.11;7.3.11 Verlaufsverfolgung eines Memo-Felds;406
9.4;7.4 Weitere Funktionen;407
9.4.1;7.4.1 Eigenschaften (Properties);407
9.4.2;7.4.2 Transaktionen;409
9.5;7.5 Praxisbeispiele;410
9.5.1;7.5.1 Eine Tabelle anlegen;410
9.5.2;7.5.2 Navigieren mit DAO;413
9.5.3;7.5.3 Den Datensatzzeiger bewegen;416
9.5.4;7.5.4 In Recordsets suchen;420
9.5.5;7.5.5 Eine Datenbank analysieren;423
9.6;7.6 Komplexbeispiel: Telefonverzeichnis;426
9.6.1;7.6.1 Eingabemaske;426
9.6.2;7.6.2 Anforderungen;426
9.6.3;7.6.3 Programmierung;427
9.6.4;7.6.4 Test und Bemerkungen;436
10;8 ADO-Programmierung;438
10.1;8.1 Ein erster Blick auf ADO;438
10.1.1;8.1.1 Kleines Einführungsbeispiel;439
10.1.2;8.1.2 Zur Geschichte von ADO;440
10.1.3;8.1.3 Hinweise zu den ADO-Bibliotheken;441
10.1.4;8.1.4 ADO und OLE DB;442
10.1.5;8.1.1 ADO-Objektmodell;443
10.2;8.2 ADO-Grundoperationen;445
10.2.1;8.2.1 Beziehungen zwischen den Objekten;445
10.2.2;8.2.2 Die Verbindung zur Datenquelle;446
10.2.3;8.2.3 Aktionsabfragen mit dem Command-Objekt;450
10.2.4;8.2.4 Recordsets mit Daten füllen;452
10.3;8.3 Weitere Operationen mit Recordsets;457
10.3.1;8.3.1 Welche Recordset-Features werden unterstützt?;457
10.3.2;8.3.2 Editieren von Datensätzen;458
10.3.3;8.3.3 Hinzufügen von Datensätzen;459
10.3.4;8.3.4 Löschen von Datensätzen;459
10.3.5;8.3.5 Recordsets filtern;460
10.3.6;8.3.6 Ungebundene Recordsets;461
10.3.7;8.3.7 Recordsets abspeichern;462
10.3.8;8.3.8 Bewegen in Recordsets;462
10.3.9;8.3.9 Daten direkt einlesen;463
10.3.10;8.3.10 Sortieren;464
10.3.11;8.3.11 Suchen;465
10.3.12;8.3.12 Ereignisse auswerten;465
10.4;8.4 Zugriff auf ADO-Auflistungen;467
10.4.1;8.4.1 Allgemeine Features;467
10.4.2;8.4.2 Property und Properties;468
10.4.3;8.4.3 Field und Fields;469
10.4.4;8.4.4 Parameter und Parameters;470
10.4.5;8.4.5 Error und Errors;471
10.5;8.5 Übersichten;472
10.5.1;8.5.1 Connection-Objekt;472
10.5.2;8.5.2 Command-Objekt;473
10.5.3;8.5.3 Recordset-Objekt;473
10.6;8.6 Praxisbeispiele;475
10.6.1;8.6.1 Mit ADO auf eine Access-Datenbank zugreifen;475
10.6.2;8.6.2 Ein ADO-Datenklassenmodul verwenden;477
10.6.3;8.6.3 Ein intelligentes ADO-Frontend entwickeln;480
11;9 Datenbankverwaltung;486
11.1;9.1 Datenbankverwaltung mit ADOX;486
11.1.1;9.1.1 Datenbanken erstellen;488
11.1.2;9.1.2 Tabellendefinition;490
11.1.3;9.1.3 Indexdefinition;494
11.1.4;9.1.4 Erstellen von Prozeduren und Sichten;496
11.1.5;9.1.5 Tabellen verknüpfen (Relationen);497
11.2;9.2 Erstellen spezieller Feldtypen;498
11.2.1;9.2.1 Automatische Zufallswerte (GUID);498
11.2.2;9.2.2 Memofeld mit Archiv-Funktion (Nur anfügen);500
11.2.3;9.2.3 Anlage-Feld;502
11.2.4;9.2.4 Rich-Text-Feld;503
11.2.5;9.2.5 Multivalue-Feld (MVF);504
11.2.6;9.2.6 Berechnete Spalten;509
11.2.7;9.2.7 Beschreibung von Datenbankfeldern setzen;511
11.3;9.3 Zugriffsschutz in Access-Datenbanken;513
11.3.1;9.3.1 Grundlagen;513
11.3.2;9.3.2 Sichern auf Datenbankebene (DAO);515
11.3.3;9.3.3 Sichern auf Datenbankebene (ADO/ADOX);516
11.3.4;9.3.4 Erstellen neuer Benutzer und Gruppen (DAO);516
11.3.5;9.3.5 Vergabe von Rechten (DAO);518
11.3.6;9.3.6 Komplettbeispiel: Nutzerbasierte Sicherheit;520
11.3.7;9.3.7 Erstellen neuer Benutzer und Gruppen (ADOX);525
11.3.8;9.3.8 Vergabe von Rechten (ADOX);526
11.3.9;9.3.9 Verschlüsseln von Datenbanken;528
11.4;9.4 Multiuserzugriff;531
11.4.1;9.4.1 Verwenden der DAO;532
11.4.2;9.4.2 Verwenden der ADO;535
11.5;9.5 ODBC-Verbindungen;536
11.5.1;9.5.1 Ein Blick auf den ODBC-Datenquellen-Administrator;536
11.5.2;9.5.2 Erstellen einer ODBC-Verbindung (DAO);538
11.5.3;9.5.3 Öffnen einer ODBC-Verbindung (DAO);539
11.5.4;9.5.4 Öffnen einer ODBC-Verbindung (ADO);541
11.5.5;9.5.5 Konfigurieren von ODBC-Verbindungen;542
11.6;9.6 Zugriff auf Fremdformate;542
11.6.1;9.6.1 dBASE III/IV- und FoxPro-Datenbanken;543
11.6.2;9.6.2 Textdateien (TXT/ASC/CSV);547
11.7;9.7 Einbinden externer Tabellen;551
11.7.1;9.7.1 Verwenden der DAO;551
11.7.2;9.7.2 Verwenden der ADOX;553
11.8;9.8 Exportieren von Daten;555
11.8.1;9.8.1 TransferDatabase-Methode;555
11.8.2;9.8.2 Exportieren mit SQL-Anweisungen;556
11.9;9.9 Replizieren von Datenbanken;556
11.10;9.10 Optimierung;557
11.10.1;9.10.1 Indizes;557
11.10.2;9.10.2 Abfrage-Optimierung;557
11.10.3;9.10.3 Weitere Möglichkeiten;558
11.10.4;9.10.4 ADO/DAO/ODBC – Was ist schneller?;559
11.11;9.11 Tipps & Tricks;561
11.11.1;9.11.1 Wie prüft man die ADO-Versionsnummer?;561
11.11.2;9.11.2 Access-Datenbanken exklusiv öffnen;561
11.11.3;9.11.3 Access-Datenbanken im Netzwerk;562
11.11.4;9.11.4 Alle aktiven Verbindungen zur Datenbank auflisten;562
11.11.5;9.11.5 Das Datenbank-Kennwort ändern;563
11.11.6;9.11.6 Abfragen über mehrere Datenbanken;564
11.11.7;9.11.7 Datenbanken reparieren/komprimieren;564
12;10 Microsoft SQL Server;566
12.1;10.1 Ein erster Schock ...;566
12.2;10.2 Allgemeines;567
12.2.1;10.2.1 SQL Server LocalDB;568
12.2.2;10.2.2 SQL Server Express;569
12.2.3;10.2.3 Unterschiede SQL Server-Varianten/Jet-Engine;570
12.2.4;10.2.4 Client- versus Fileserver-Programmierung;572
12.2.5;10.2.5 Installation SQL Server Express;574
12.2.6;10.2.6 Netzwerkzugriff für den SQL Server Express;578
12.2.7;10.2.7 Die wichtigsten Tools von SQL Server;580
12.2.8;10.2.8 Vordefinierte Datenbanken;583
12.2.9;10.2.9 Einschränkungen;584
12.2.10;10.2.10 Weitere SQL Server-Funktionen im Kurzüberblick;585
12.2.11;10.2.11 Datenbanken verwalten;586
12.3;10.3 Transact-SQL – die Sprache des SQL Servers;588
12.3.1;10.3.1 Schreibweise;588
12.3.2;10.3.2 Kommentare;589
12.3.3;10.3.3 Zeichenketten;589
12.3.4;10.3.4 Variablen deklarieren/verwenden;590
12.3.5;10.3.5 Bedingungen mit IF/ELSE auswerten;591
12.3.6;10.3.6 Verwenden von CASE;592
12.3.7;10.3.7 Verwenden von WHILE…BREAK/CONTINUE;592
12.3.8;10.3.8 Datum und Uhrzeit in T-SQL;593
12.3.9;10.3.9 Verwenden von GOTO;593
12.4;10.4 Praktisches Arbeiten mit dem SQL Server;594
12.4.1;10.4.1 Erstellen neuer SQL Server-Datenbanken;594
12.4.2;10.4.2 Erzeugen und Verwalten von Tabellen;595
12.4.3;10.4.3 Erzeugen und Verwenden von Sichten (Views);596
12.4.4;10.4.4 Verwenden von Gespeicherten Prozeduren;598
12.4.5;10.4.5 Programmieren von Triggern;602
12.4.6;10.4.6 Erzeugen von Datenbankdiagrammen;606
12.4.7;10.4.7 Volltextabfragen;607
12.4.8;10.4.8 Datenbanken sichern und wiederherstellen;613
12.5;10.5 Fehlerbehandlung;616
12.5.1;10.5.1 Das Fehlermodell des SQL Servers;617
12.5.2;10.5.2 Verwenden von @@ERROR;617
12.5.3;10.5.3 Verwenden von RAISEERROR;618
12.5.4;10.5.4 Fehlerbehandlung mit TRY...CATCH;619
12.5.5;10.5.5 Fehlerbehandlung mit den ADO;621
12.6;10.6 Datensicherheit auf dem Microsoft SQL Server;623
12.6.1;10.6.1 Überblick Sicherheitsmodell;624
12.6.2;10.6.2 Verwalten mit dem SQL Server Management Studio;626
12.6.3;10.6.3 Verwalten mit T-SQL;630
12.7;10.7 Tipps & Tricks;633
12.7.1;10.7.1 Alle registrierten Microsoft SQL Server ermitteln;633
12.7.2;10.7.2 Alle Datenbanken ermitteln;634
12.7.3;10.7.3 Alle Tabellen ermitteln;634
12.7.4;10.7.4 Eine Tabelle löschen;635
12.7.5;10.7.5 Anzahl der Datensätze beschränken;636
12.7.6;10.7.6 Platzhalterzeichen in TSQL;637
12.7.7;10.7.7 Leerzeichen entfernen;637
12.7.8;10.7.8 Teilstrings erzeugen;637
12.7.9;10.7.9 Mit einer Datenbankdatei verbinden;638
12.7.10;10.7.10 Warum wird @@ERROR nicht korrekt verarbeitet?;639
12.7.11;10.7.11 Die Anzahl der Datensätze bestimmen;639
12.7.12;10.7.12 Warum sind Abfragen mit Platzhaltern so langsam?;639
12.7.13;10.7.13 Groß-/Kleinschreibung berücksichtigen;640
12.7.14;10.7.14 Das Ergebnis einer Stored Procedure speichern;640
12.7.15;10.7.15 Eine Datenbank umbenennen;640
12.7.16;10.7.16 Eine Datenbank zwischen Servern verschieben;641
12.7.17;10.7.17 Die Datenbankstruktur kopieren;642
12.7.18;10.7.18 Nach dem Löschen IDENTITY auf 0 setzen;643
12.7.19;10.7.19 Eine Tabellenspalte umbenennen;643
12.7.20;10.7.20 Temporäre Tabellen unterscheiden;643
12.7.21;10.7.21 Daten aus verschiedenen Datenbanken anzeigen;644
12.7.22;10.7.22 Einen SMO-Mapper realisieren;644
12.8;10.8 Übersichten;649
12.8.1;10.8.1 Datentypen;649
12.8.2;10.8.2 Unterschiede Access- und SQL Server-Datentypen;650
13;11 Access und Azure SQL;652
13.1;11.1 Einführung in SQL Azure-Datenbanken;653
13.1.1;11.1.1 Das Grundprinzip der "Webdatenbank";653
13.1.2;11.1.2 Der Azure-Server;655
13.1.3;11.1.3 Die Frage nach den Kosten;656
13.2;11.2 Einrichten des Servers;657
13.2.1;11.2.1 Die zentrale Organisationsstruktur;658
13.2.2;11.2.2 Einen Server und eine Datenbank erstellen;659
13.2.3;11.2.3 IP-Filter konfigurieren;663
13.2.4;11.2.4 Bemerkungen zum neu erstellten Account;664
13.2.5;11.2.5 Die drei konzeptionellen Zugriffsmodelle;664
13.3;11.3 Administrieren von Azure SQL-Datenbanken;667
13.3.1;11.3.1 Zugriff mit dem SQL Server Management Studio;667
13.3.2;11.3.2 Weitere Accounts erstellen;669
13.3.3;11.3.3 Lokale Datenbanken migrieren;672
13.3.4;11.3.4 Migrieren von Access-Datenbanken;675
13.4;11.4 Praktische Umsetzung in Access;677
13.4.1;11.4.1 Tabellen einbinden;678
13.4.2;11.4.2 DAO- oder ADO-Zugriff – keine Frage!;681
13.4.3;11.4.3 Unsere AzureSQL-Library;681
13.4.4;11.4.4 Verbindung mit ADO aufbauen;682
13.4.5;11.4.5 Datenbank erstellen;686
13.4.6;11.4.6 Ist die Datenbank schon vorhanden?;687
13.4.7;11.4.7 Den aktuellen "Füllstand" abrufen;688
13.4.8;11.4.8 Was passiert, wenn die Datenbank zu klein wird?;691
13.4.9;11.4.9 Eine Datenbankkopie erstellen;691
13.4.10;11.4.10 Tabelle(n) erstellen;692
13.4.11;11.4.11 Daten exportieren;693
13.4.12;11.4.12 Daten einbinden;694
13.4.13;11.4.13 Daten lesen;695
13.4.14;11.4.14 Daten schreiben;696
13.5;11.5 Abschließende Hinweise;697
13.5.1;11.5.1 Synchronisieren;697
13.5.2;11.5.2 Performance-Tipps;698
13.5.3;11.5.3 Die Firewall per T-SQL konfigurieren;698
13.5.4;11.5.4 Arbeiten mit sqlcmd;700
13.6;11.6 Fazit;700
14;12 Zugriff auf SQLite;702
14.1;12.1 Was eigentlich ist SQLite?;703
14.1.1;12.1.1 Vorteile;703
14.1.2;12.1.2 Nachteile;704
14.2;12.2 Vorbereitungen;704
14.2.1;12.2.1 Download/Installation des ODBC-Treibers;705
14.2.2;12.2.2 Download/Installation SQLite for Excel;706
14.3;12.3 Datenbank-Tools;707
14.3.1;12.3.1 Database .NET;707
14.3.2;12.3.2 SQLite Administrator;709
14.4;12.4 Praktische Aufgabenstellungen;710
14.4.1;12.4.1 Einbinden von SQLite-Tabellen per Assistent;710
14.4.2;12.4.2 Einbinden von SQLite-Tabellen per VBA-Code;711
14.4.3;12.4.3 Datenbank per Code erstellen;712
14.4.4;12.4.4 Tabellen erzeugen;713
14.4.5;12.4.5 Datenbankzugriff per ADO realisieren;715
14.4.6;12.4.6 Die Bedeutung von Transaktionen bei SQLite;716
14.4.7;12.4.7 SOUNDEX verwenden;717
14.4.8;12.4.8 Volltextabfragen realisieren;718
14.5;12.5 Praxisbeispiele;721
14.5.1;12.5.1 Verwenden der Volltextsuche;721
14.5.2;12.5.2 Implementieren der Klasse SQLiteDatabase;726
14.5.3;12.5.3 Verwenden der Klasse SQLiteDatabase;736
14.6;12.6 Tipps & Tricks;738
14.6.1;12.6.1 Für Liebhaber der Kommandozeile – Sqlite3.exe;738
14.6.2;12.6.2 Eine SQLite-Datenbank reparieren;740
14.6.3;12.6.3 Eine Beispieldatenbank herunterladen;741
14.6.4;12.6.4 Testen ob Tabelle vorhanden ist;741
14.6.5;12.6.5 Die Datenbank defragmentieren;741
14.6.6;12.6.6 Mehrere Datenbanken verknüpfen;742
14.6.7;12.6.7 Eine Abfrage/Tabelle kopieren;742
14.6.8;12.6.8 Ein Backup implementieren;743
14.6.9;12.6.9 Tabellen zwischen Datenbanken kopieren;743
14.6.10;12.6.10 Ersatz für TOP;743
14.6.11;12.6.11 Metadaten auswerten;744
14.6.12;12.6.12 Timestamp als Defaultwert verwenden;745
14.6.13;12.6.13 Export in XML-Format;746
14.7;12.7 Fazit;746
15;13 Dateien und Verzeichnisse;750
15.1;13.1 Allgemeines;750
15.1.1;13.1.1 ANSI/ASCII/Unicode;750
15.1.2;13.1.2 Gemeinsamer Dateizugriff;751
15.1.3;13.1.3 Verwenden der File System Objects;751
15.2;13.2 Zugriff auf das Dateisystem;753
15.2.1;13.2.1 Ermitteln aller Laufwerke und deren Eigenschaften;753
15.2.2;13.2.2 Ermitteln aller Verzeichnis-Eigenschaften;754
15.2.3;13.2.3 Auflisten aller Unterverzeichnisse eines Folders;755
15.2.4;13.2.4 Rekursiv alle Unterverzeichnisse auflisten;756
15.2.5;13.2.5 Ein Verzeichnis erzeugen;757
15.2.6;13.2.6 Das Datenbankverzeichnis bestimmen;758
15.2.7;13.2.7 Abfragen des Temp-/System/...-Verzeichnisses;758
15.2.8;13.2.8 Prüfen, ob eine Datei existiert;759
15.2.9;13.2.9 Verzeichnisse/Dateien kopieren/löschen;760
15.2.10;13.2.10 Auflisten aller Dateien eines Verzeichnisses;760
15.2.11;13.2.11 Name, Pfad und Extension einer Datei ermitteln;761
15.2.12;13.2.12 Einen Tempfile-Namen erzeugen;763
15.3;13.3 Textdateien;763
15.3.1;13.3.1 Klassischer Zugriff auf Textdateien;764
15.3.2;13.3.2 Zugriff auf Textdateien mit den File System Objects;766
15.4;13.4 Typisierte Dateien;769
15.4.1;13.4.1 Öffnen;769
15.4.2;13.4.2 Lesen/Schreiben;769
15.5;13.5 Weitere Dateien;771
15.5.1;13.5.1 Binärdateien;771
15.5.2;13.5.2 INI-Dateien;772
15.6;13.6 Die Registrierdatenbank;774
15.6.1;13.6.1 Einführung;774
15.6.2;13.6.2 API/VBA-Zugriff auf die Registrierungsdatenbank;775
15.6.3;13.6.3 API-Konstanten/Funktionen für den Registry-Zugriff;776
15.6.4;13.6.4 Prüfen, ob ein Schlüssel existiert;778
15.6.5;13.6.5 Einen vorhandenen Wert auslesen;778
15.6.6;13.6.6 Einen Schlüssel erstellen;779
15.6.7;13.6.7 Einen Wert setzen bzw. ändern;780
15.6.8;13.6.8 Einen Schlüssel löschen;780
15.6.9;13.6.9 Ein Feld löschen;780
15.6.10;13.6.10 Aufruf der Funktionen;781
15.7;13.7 Dateidialoge;783
15.7.1;13.7.1 Variante 1 (Office 16 Library);784
15.7.2;13.7.2 Variante 2 (Windows-API);786
15.7.3;13.7.3 Verzeichnisdialog (Windows-API);791
15.8;13.8 Übersichten;793
15.8.1;13.8.1 Dateifunktionen in Access;793
15.8.2;13.8.2 FSO-Eigenschaften und -Methoden;794
15.9;13.9 Praxisbeispiele;795
15.9.1;13.9.1 Auf eine Textdatei zugreifen;795
15.9.2;13.9.2 Dateien suchen;800
15.9.3;13.9.3 Die Shellfunktionen verwenden;802
15.9.4;13.9.4 Einen Verzeichnisbaum in eine TreeView einlesen;807
16;14 XML in Theorie und Praxis;808
16.1;14.1 XML – etwas Theorie;808
16.1.1;14.1.1 Allgemeines;808
16.1.2;14.1.2 Der XML-Grundaufbau;811
16.1.3;14.1.3 Wohlgeformte Dokumente;812
16.1.4;14.1.4 Processing Instructions (PI);814
16.1.5;14.1.5 Elemente und Attribute;815
16.1.6;14.1.6 Verwendbare Zeichensätze;816
16.2;14.2 XSD-Schemas;818
16.2.1;14.2.1 Das Grundprinzip;818
16.2.2;14.2.2 Ein XSD-Schema mit Microsoft Access erzeugen;820
16.3;14.3 XML-Verarbeitung mit dem DOM;824
16.3.1;14.3.1 Was ist das DOM?;824
16.3.2;14.3.2 Erste Schritte;825
16.3.3;14.3.3 Erzeugen von Instanzen;826
16.3.4;14.3.4 Laden von Dokumenten;827
16.3.5;14.3.5 XML-Fehlerprüfung/-Analyse;828
16.3.6;14.3.6 Erzeugen von XML-Dokumenten;830
16.3.7;14.3.7 Auslesen von XML-Dateien;832
16.3.8;14.3.8 Einfügen von Informationen;835
16.3.9;14.3.9 Attribute oder Element;838
16.3.10;14.3.10 Suchen in den Baumzweigen;841
16.3.11;14.3.11 Das Interpretieren von Leerzeichen;844
16.4;14.4 XML-Integration in Access;847
16.4.1;14.4.1 Importieren;847
16.4.2;14.4.2 Exportieren;850
16.4.3;14.4.3 XML-Transformation mit XSLT;854
16.4.4;14.4.4 Application-Objekt (ImportXML/ExportXML);857
16.4.5;14.4.5 ADO-Recordset;860
16.5;14.5 Vor- und Nachteile von XML;862
16.5.1;14.5.1 Grundsätzlicher Vergleich;863
16.5.2;14.5.2 Zeitvergleich ADO/XML;863
16.6;14.6 Praxisbeispiele;865
16.6.1;14.6.1 Speichern im UTF-8-/UTF-16-Format;865
16.6.2;14.6.2 UTF-8-/UTF-16 aus einem ADO-Stream laden;867
16.6.3;14.6.3 XML-Daten asynchron verarbeiten;869
16.6.4;14.6.4 XML-Daten in einer TreeView darstellen;871
16.6.5;14.6.5 Navigieren zwischen einzelnen XML-Baumknoten;874
16.6.6;14.6.6 ADO-XML-Streams nachbearbeiten;877
16.6.7;14.6.7 Textdaten in XML-Dokumente umwandeln;880
17;15 SQL im Einsatz;882
17.1;15.1 Einführung;882
17.1.1;15.1.1 SQL-Dialekte;883
17.1.2;15.1.2 Kategorien von SQL-Anweisungen;883
17.2;15.2 Etwas (Datenbank-)Theorie;885
17.2.1;15.2.1 Allgemeines/Begriffe;885
17.2.2;15.2.2 Normalisieren von Tabellen;890
17.2.3;15.2.3 Beziehungen zwischen den Tabellen;895
17.2.4;15.2.4 Verknüpfen von Tabellen;897
17.3;15.3 Testprogramm und Beispieldatenbank;901
17.3.1;15.3.1 Hinweise zur Bedienung;901
17.3.2;15.3.2 Die Beispieldatenbank im Überblick;901
17.3.3;15.3.3 ADO Query;902
17.3.4;15.3.4 Bemerkungen;903
17.4;15.4 Daten abfragen;904
17.4.1;15.4.1 Abfragen mit SELECT;905
17.4.2;15.4.2 Alle Spalten auswählen;905
17.4.3;15.4.3 Auswahl der Spalten;906
17.4.4;15.4.4 Filtern;907
17.4.5;15.4.5 Beschränken der Ergebnismenge;913
17.4.6;15.4.6 Eindeutige Records/doppelte Datensätze;914
17.4.7;15.4.7 Tabellen verknüpfen;915
17.4.8;15.4.8 Tabellen vereinigen;918
17.4.9;15.4.9 Datensätze sortieren;919
17.4.10;15.4.10 Datensätze gruppieren;919
17.4.11;15.4.11 Unterabfragen;921
17.4.12;15.4.12 Anlage-Felder mit SQL verwalten;925
17.4.13;15.4.13 History-Felder mit SQL abfragen;927
17.4.14;15.4.14 Mehrwertige Felder mit SQL abfragen;929
17.5;15.5 Daten manipulieren;930
17.5.1;15.5.1 Einfügen einzelner Datensätze;931
17.5.2;15.5.2 Einfügen von Abfragedaten;932
17.5.3;15.5.3 Exportieren/Importieren von Abfragedaten;934
17.5.4;15.5.4 Aktualisieren/Ändern;936
17.5.5;15.5.5 Löschen;937
17.6;15.6 Erweiterte SQL-Funktionen;938
17.6.1;15.6.1 Berechnete/Formatierte Spalten;939
17.6.2;15.6.2 Berechnungsfunktionen;945
17.6.3;15.6.3 NULL-Werte;946
17.6.4;15.6.4 Datum und Zeit in SQL-Abfragen;948
17.6.5;15.6.5 Datentypumwandlungen;953
17.6.6;15.6.6 Kreuztabellenabfragen;954
17.6.7;15.6.7 Steuerelemente in Abfragen verwenden;957
17.6.8;15.6.8 Globale Variablen in Abfragen verwenden;958
17.7;15.7 Datenbankverwaltung mit SQL (DDL);958
17.7.1;15.7.1 Datenbanken;959
17.7.2;15.7.2 Tabellen;959
17.7.3;15.7.3 Indizes;960
17.7.4;15.7.4 Tabellen/Indizes löschen oder verändern;963
17.7.5;15.7.5 Sichten (Views);963
17.7.6;15.7.6 Nutzer- und Rechteverwaltung;965
17.7.7;15.7.7 Transaktionen;965
17.8;15.8 SQL in der Access-Praxis;966
17.8.1;15.8.1 SQL in Abfragen;966
17.8.2;15.8.2 SQL im Basic-Code;967
17.8.3;15.8.3 SQL beim Oberflächenentwurf;969
17.8.4;15.8.4 VBA-Funktionen in SQL-Anweisungen;969
17.9;15.9 Tipps & Tricks;971
17.9.1;15.9.1 Wie kann ich die Anzahl der Datensätze ermitteln?;971
17.9.2;15.9.2 Wie nutze ich Datumsteile in SQL zur Suche?;972
17.9.3;15.9.3 Die Groß-/Kleinschreibung berücksichtigen;972
17.9.4;15.9.4 Warum erhalte ich zu viele Datensätze ?;973
17.9.5;15.9.5 Doppelte Datensätze aus einer Tabelle löschen;974
17.10;15.10 Praxisbeispiele;975
17.10.1;15.10.1 Ein komfortables SQL-Abfrageprogramm erstellen;975
17.10.2;15.10.2 Datum und Zeit in SQL einbauen;977
18;16 Anwendungsdesign;980
18.1;16.1 Access-Oberflächengestaltung;980
18.1.1;16.1.1 Beschriften der Kopfzeile;981
18.1.2;16.1.2 Informationen in der Statuszeile anzeigen;983
18.1.3;16.1.3 Fortschrittsanzeige mit dem Progressbar realisieren;984
18.1.4;16.1.4 Navigationsbereich konfigurieren;985
18.1.5;16.1.5 Access-Hauptfenster komplett ausblenden;991
18.2;16.2 Steuern der Anwendung;994
18.2.1;16.2.1 Autostart mit AutoExec-Makro;994
18.2.2;16.2.2 Formulare automatisch starten;996
18.2.3;16.2.3 Warten auf das Ende;996
18.2.4;16.2.4 Access per VBA beenden;997
18.2.5;16.2.5 Den Runtime-Modus aktivieren;997
18.2.6;16.2.6 Befehlszeilen-Optionen verwenden;998
18.3;16.3 Entwickeln von Assistenten und Add-Ins;1000
18.3.1;16.3.1 Assistenten-Typen;1000
18.3.2;16.3.2 Einbinden der Assistenten in die Access-IDE;1000
18.3.3;16.3.3 Menü-Assistent (Beispiel);1002
18.3.4;16.3.4 Objekt-Assistent (Beispiel);1004
18.3.5;16.3.5 Steuerelemente-Assistent (Beispiel);1008
18.3.6;16.3.6 Eigenschaften-Assistent;1011
18.4;16.4 Entwickeln/Einbinden von Managed Add-Ins;1012
18.4.1;16.4.1 Interaktion Anwendung/Add-In;1012
18.4.2;16.4.2 Entwurf des Add-Ins;1013
18.4.3;16.4.3 Oberfläche;1015
18.4.4;16.4.4 Der Quellcode des Add-Ins;1016
18.4.5;16.4.5 Formularentwurf für das Add-In;1018
18.4.6;16.4.6 Kompilieren und Einbinden;1018
18.4.7;16.4.7 Testen;1019
18.5;16.5 Libraries unter Access;1020
18.5.1;16.5.1 Erstellen und Einbinden;1020
18.5.2;16.5.2 Debugging;1021
18.5.3;16.5.3 Einfaches Beispiel;1022
18.5.4;16.5.4 Hinweise;1024
18.6;16.6 Praxisbeispiele;1025
18.6.1;16.6.1 Mehr über die aktuelle Access-Version erfahren;1025
18.6.2;16.6.2 Access neu starten/Datenbank neu laden;1026
18.6.3;16.6.3 Mit Reference-Objekten arbeiten;1027
18.6.4;16.6.4 Benutzerdefinierte Eigenschaften einsetzen;1031
18.6.5;16.6.5 Den aktuellen Datenbanknutzer ermitteln;1035
18.6.6;16.6.6 Überlappende Fenster einstellen;1035
18.6.7;16.6.7 Access-Optionen abrufen/setzen;1036
19;17 Menüband und Backstage;1038
19.1;17.1 Allgemeine Grundlagen;1038
19.1.1;17.1.1 Manuelle Konfigurationsmöglichkeiten;1039
19.1.2;17.1.2 Grundprinzip der Programmierung;1040
19.1.3;17.1.3 Verwenden der Tabelle USysRibbons;1042
19.1.4;17.1.4 Application.LoadCustomUI als Alternative;1043
19.2;17.2 Ein kleines Testprogramm;1043
19.3;17.3 Praktische Aufgabenstellungen;1045
19.3.1;17.3.1 Infos über Steuerelemente und Symbole erhalten;1045
19.3.2;17.3.2 Hauptregisterkarten ausblenden;1047
19.3.3;17.3.3 Einzelne Registerkarten ausblenden;1048
19.3.4;17.3.4 Einzelne Gruppen ausblenden;1049
19.3.5;17.3.5 Registerkarten, Gruppen und Schaltflächen einfügen;1050
19.3.6;17.3.6 Ereignisbehandlung mit VBA-Code/Makros;1052
19.3.7;17.3.7 Verändern von Eigenschaften mit VBA-Callbacks;1053
19.3.8;17.3.8 Aktualisieren des Menübands per VBA-Code;1053
19.3.9;17.3.9 Kontextabhängige Registerkarten;1054
19.3.10;17.3.10 Registerkarten per VBA aktivieren;1055
19.3.11;17.3.11 Fehlermeldungen des Menübands anzeigen;1056
19.3.12;17.3.12 Vorhandene Funktionen des Menübands ändern;1056
19.3.13;17.3.13 Die Schnellzugriffsleiste erweitern/programmieren;1057
19.4;17.4 Übersicht der Steuerelemente;1058
19.4.1;17.4.1 labelControl-Steuerelement;1058
19.4.2;17.4.2 Steuerelement;1058
19.4.3;17.4.3 Steuerelement;1062
19.4.4;17.4.4 toggleButton-Steuerelement;1063
19.4.5;17.4.5 buttonGroup-Steuerelement;1064
19.4.6;17.4.6 checkBox-Steuerelement;1065
19.4.7;17.4.7 editBox-Steuerelement;1066
19.4.8;17.4.8 Steuerelement;1067
19.4.9;17.4.9 dropDownElement-Steuerelement;1071
19.4.10;17.4.10 gallery-Steuerelement;1074
19.4.11;17.4.11 menu-Steuerelement;1076
19.4.12;17.4.12 splitButton-Steuerelement;1079
19.4.13;17.4.13 dialogBoxLauncher;1080
19.5;17.5 Die Backstage-Ansicht anpassen;1082
19.5.1;17.5.1 Die Standardansicht verändern;1083
19.5.2;17.5.2 Die drei möglichen Layouts für Registerkarten;1085
19.5.3;17.5.3 Die neuen Möglichkeiten von Gruppen;1092
19.5.4;17.5.4 Verwenden von LayoutContainern;1094
19.5.5;17.5.5 Das Verhalten der Schaltflächen beeinflussen;1095
19.5.6;17.5.6 Mit VBA/Makros auf Ereignisse reagieren;1096
19.6;17.6 Tipps & Tricks;1097
19.6.1;17.6.1 Die guten alten Access 2003-Menüs anzeigen;1097
19.6.2;17.6.2 Das Office-Menü für Access 2007 anpassen;1099
19.6.3;17.6.3 XML-Daten komfortabel editieren;1100
19.6.4;17.6.4 Arbeiten mit dem RibbonCreator;1101
19.7;17.7 Übersichten;1102
20;18 Programmschnittstellen;1104
20.1;18.1 Zwischenablage;1104
20.1.1;18.1.1 Kopieren/Einfügen mittels DoCmd-Objekt;1104
20.1.2;18.1.2 Ein Clipboard-Objekt programmieren;1105
20.2;18.2 API- und DLL-Einbindung;1108
20.2.1;18.2.1 Allgemeines;1108
20.2.2;18.2.2 Und was ist mit der 64-Bit Access Version?;1109
20.2.3;18.2.3 Woher bekomme ich Infos über die Win32-API?;1111
20.2.4;18.2.4 Einbinden der Deklaration;1112
20.2.5;18.2.5 Wert oder Zeiger?;1114
20.2.6;18.2.6 Übergabe von Strings;1115
20.2.7;18.2.7 Verwenden von As Any;1116
20.2.8;18.2.8 Übergabe von Arrays;1116
20.2.9;18.2.9 Besonderheiten mit Records;1117
20.2.10;18.2.10 Zuordnen der Datentypen;1119
20.3;18.3 OLE/ActiveX;1120
20.3.1;18.3.1 Überblick;1120
20.3.2;18.3.2 OLE;1121
20.3.3;18.3.3 Übersicht zum Objektfeld-Steuerelement;1122
20.3.4;18.3.4 Programmieren mit dem Objektfeld;1125
20.3.5;18.3.5 ActiveX-Code-Komponenten (OLE-Automation);1128
20.3.6;18.3.6 Programmieren mit ActiveX-Code-Komponenten;1129
20.4;18.4 DDE;1131
20.4.1;18.4.1 Funktionsprinzip;1131
20.4.2;18.4.2 Verwenden von Steuerelementen;1132
20.4.3;18.4.3 VBA-Programmierung;1133
20.5;18.5 Scanner-Unterstützung per WIA;1135
20.5.1;18.5.1 Was kann WIA?;1135
20.5.2;18.5.2 Installation/Vorbereitung;1135
20.5.3;18.5.3 Einstieg mit kleiner Beispielanwendung;1136
20.5.4;18.5.4 Reagieren auf das Verbinden/Trennen von Geräten;1137
20.5.5;18.5.5 Ermitteln der verfügbaren Geräte;1138
20.5.6;18.5.6 Anzeige der Geräteeigenschaften;1138
20.5.7;18.5.7 Ein Bild einlesen;1140
20.5.8;18.5.8 Bild(er) drucken (Assistent);1141
20.5.9;18.5.9 Den Scanner-Assistent aufrufen;1142
20.5.10;18.5.10 Grafikbearbeitung;1143
20.6;18.6 Zugriff auf Excel-Arbeitsmappen;1145
20.6.1;18.6.1 Zugriffsmöglichkeiten;1145
20.6.2;18.6.2 TransferSpreadsheet;1146
20.6.3;18.6.3 Import/Export per DAO;1150
20.6.4;18.6.4 Daten auslesen;1154
20.6.5;18.6.5 Zugriff auf Tabellenbereiche;1156
20.6.6;18.6.6 OLE-Automation;1157
20.7;18.7 Praxisbeispiele;1160
20.7.1;18.7.1 Eine externe Anwendung starten;1160
20.7.2;18.7.2 Informationen über das aktuelle System ermitteln;1162
20.7.3;18.7.3 Das aktuelle Betriebssystem ermitteln;1165
20.7.4;18.7.4 Den Windows-Lizenznehmer ermitteln;1168
20.7.5;18.7.5 Zeitmessungen in Access durchführen;1170
20.7.6;18.7.6 Microsoft Word über ActiveX steuern;1174
20.7.7;18.7.7 Microsoft Excel über ActiveX steuern;1178
21;Index;1180