Vorwort

Werbung
Walter Doberenz, Thomas Gewinnus
Microsoft Access 2010-Programmierung
Das Handbuch
Walter Doberenz, Thomas Gewinnus
Microsoft Access 2010Programmierung
Das Handbuch
Walter Doberenz, Thomas Gewinnus: Microsoft Access 2010-Programmierung – Das Handbuch
Copyright © 2011 O'Reilly Verlag GmbH & Co. KG
Das in diesem Buch enthaltene Programmmaterial ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor, Übersetzer und der Verlag übernehmen folglich keine Verantwortung und werden keine daraus
folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses Programmmaterials
oder Teilen davon entsteht.
Das Werk einschließlich aller Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen
des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen
Systemen.
Die in den Beispielen verwendeten Namen von Firmen, Organisationen, Produkten, Domänen, Personen, Orten,
Ereignissen sowie E-Mail-Adressen und Logos sind frei erfunden, soweit nichts anderes angegeben ist. Jede Ähnlichkeit mit tatsächlichen Firmen, Organisationen, Produkten, Domänen, Personen, Orten, Ereignissen, E-MailAdressen und Logos ist rein zufällig.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
13 12 11
ISBN 978-3-86645-459-0, PDF-ISBN 978-3-86645-357-9
© O'Reilly Verlag GmbH & Co. KG
Balthasarstr. 81, D-50670 Köln
Alle Rechte vorbehalten
Satz: Ingenieurbüro Dipl.-Ing. Th. Gewinnus (www.doko-buch.de)
Layout: Gerhard Alfes, mediaService, Siegen (www.media-service.tv)
Umschlaggestaltung: Hommer Design GmbH, Haar (www.HommerDesign.com)
Gesamtherstellung: Kösel, Krugzell (www.KoeselBuch.de)
Kurzübersicht
Vorwort
................................................................................
1
Einführung
2
Programmieren mit VBA
3
Datenmakros
4
Formulare und Steuerelemente
5
Berichte
6
Programmieren mit Objekten
7
............................................................................
27
31
..............................................................
73
..........................................................................
141
.......................................................
161
...............................................................................
225
.........................................................
273
DAO-Programmierung
................................................................
327
8
ADO-Programmierung
................................................................
397
9
SQL in Theorie und Praxis
.............................................................
445
10
Fortgeschrittene Datenbankprogrammierung
11
Microsoft SQL Server
12
Dateien und Verzeichnisse
............................................................
741
13
XML in Theorie und Praxis
............................................................
805
14
Programmschnittstellen
...............................................................
877
15
Access im Internet/Intranet
16
Access und SharePoint
17
Die Access Services
18
Datendienste in Microsoft Access einbinden
19
Anwendungsdesign
20
Menüband und Backstage-Ansicht programmieren
21
Techniken der Programmentwicklung
A
Glossar
B
Wichtige Dateierweiterungen
C
ANSI-Tabelle
D
Wichtige Tastaturcodes
.........................................
545
..................................................................
641
...........................................................
955
................................................................
987
....................................................................
1019
..........................................
1061
...................................................................
1083
...................................
1125
.................................................
1191
................................................................................
1253
.........................................................
1259
..........................................................................
1261
Stichwortverzeichnis
................................................................
1265
...................................................................
1269
Inhaltsverzeichnis
HINWEIS
Die Bonuskapitel 9 und 13 finden Sie als PDF-Datei auf der beiliegenden CD. Im Inhaltsverzeichnis sind sie
durch ein CD-Symbol gekennzeichnet.
Vorwort
1
................................................................................
Einführung
............................................................................
VBA-Programmierung unter Microsoft Access 2010 .......................................
Visual Basic versus VBA ..............................................................
Objekt- und ereignisorientierte Programmierung ......................................
VBA- oder Makro-Programmierung? ..................................................
Die VBA-Entwicklungsumgebung .....................................................
Formularentwurf ....................................................................
Code-Fenster und Symbolleiste .......................................................
Das Eigenschaftenfenster .............................................................
Der Projekt-Explorer .................................................................
Das Code-Fenster ....................................................................
Arbeiten mit der Hilfe ................................................................
Sicherheitseinstellungen .................................................................
Zur Geschichte der Access-Sicherheit ..................................................
Eine nicht vertrauenswürdige Datenbank öffnen .......................................
Das Sicherheitscenter .................................................................
Definition vertrauenswürdiger Speicherorte ...........................................
Einführungsbeispiele ....................................................................
Erstellen der Testdatenbank ...........................................................
Konventionelle Programmierung .....................................................
Programmieren mit VBA .............................................................
Automatische Makrokonvertierung ...................................................
Programmieren mit Datenmakro .....................................................
Highlights und Features von Access 2010 ..................................................
Zur Geschichte der Vorgängerversionen ...............................................
Das ist neu in Microsoft Office Access 2010 ............................................
Übersichten und Ergänzungen ...........................................................
Deutsche und englische Bezeichner ...................................................
DoCmd-Objekt ......................................................................
2
Programmieren mit VBA
..............................................................
Datentypen, Variablen und Konstanten ...................................................
Übersicht ............................................................................
Variablendeklaration .................................................................
Konstantendeklaration ...............................................................
Gültigkeitsbereiche ..................................................................
27
31
32
32
32
33
34
34
35
37
37
38
41
42
42
43
45
48
50
50
51
56
60
61
63
63
65
68
68
69
73
74
74
75
80
80
8
Inhaltsverzeichnis
Einzelheiten zu den Datentypen ..........................................................
Single- und Double-Datentypen ......................................................
Integer-, Long- und Boolean-Datentypen ..............................................
Date-Datentyp .......................................................................
Currency-Datentyp ..................................................................
String-Datentyp .....................................................................
Variant-Datentyp ....................................................................
Datenfelder (Arrays) .....................................................................
Statische Arrays .....................................................................
Dynamische Arrays ..................................................................
Benutzerdefinierte Datentypen ...........................................................
Type-Anweisung .....................................................................
With-Anweisung .....................................................................
Strings innerhalb Type ...............................................................
Enumerationen ......................................................................
Arrays in benutzerdefinierten Typen ..................................................
Operatoren .............................................................................
Arithmetische Operatoren ............................................................
Logische Operatoren .................................................................
Vergleichsoperatoren .................................................................
Kontrollstrukturen ......................................................................
Bedingte Verzweigungen ..............................................................
Schleifenanweisungen ................................................................
GoTo und GoSub ....................................................................
Zeichenkettenfunktionen ................................................................
Stringverarbeitung ...................................................................
Format-Funktion ....................................................................
Vordefinierte Funktionen ................................................................
Mathematische Funktionen ...........................................................
Finanzmathematische Funktionen ....................................................
Datums-/Zeitfunktionen .............................................................
Benutzerdefinierte Funktionen/Prozeduren ...............................................
Funktion ............................................................................
Prozedur ............................................................................
Parameterübergabe ByRef oder ByVal .................................................
Optionale Argumente ................................................................
Benannte Argumente .................................................................
Parameter-Arrays ....................................................................
Dynamische Arrays als Argumente ....................................................
Rückgabe von Arrays .................................................................
Private-, Public- und Static-Deklarationen .............................................
Übersichten und Ergänzungen ...........................................................
Datumskonstanten ...................................................................
Rückgabewerte der VarType-Funktion .................................................
Praxisbeispiele ..........................................................................
In einem Textfeld suchen .............................................................
Zeitangaben runden ..................................................................
Das Wochenende feststellen ...........................................................
Mit dynamischen Arrays rechnen .....................................................
84
84
84
84
87
88
89
93
93
95
97
97
97
98
99
100
101
102
104
106
106
106
108
110
111
111
113
115
115
119
120
123
124
124
125
126
127
127
128
128
129
131
131
132
132
132
134
135
136
9
Inhaltsverzeichnis
3
Datenmakros
..........................................................................
Grundlagen von Datenmakros ............................................................
Einsatzmöglichkeitem ................................................................
Funktionsprinzip ....................................................................
Datenmakros und VBA ...............................................................
Erzeugen von Datenmakros ...........................................................
Datenmakros umbenennen, löschen und ändern .......................................
USysApplicationLog .................................................................
Aktionen in Datenmakros ................................................................
Aktionen für alle Tabellenereignisse ...................................................
Zusätzliche Aktionen der Nachfolgeereignisse ..........................................
Auswahl des richtigen Tabellenereignisses .................................................
Vorabereignisse ......................................................................
Nachfolgeereignisse ..................................................................
Einschränkungen ....................................................................
Praxisbeispiele ..........................................................................
Ein ereignisgesteuertes Datenmakro erstellen ..........................................
Arbeiten mit einem benannten Datenmakro ...........................................
Per VBA auf ein benanntes Datenmakro zugreifen ......................................
Änderungen von Tabelleninhalten protokollieren ......................................
4
Formulare und Steuerelemente
.......................................................
Allgemeines .............................................................................
Gruppen von Eigenschaften ..........................................................
Methoden ...........................................................................
Gruppen von Ereignissen .............................................................
Das Form-Objekt ........................................................................
Format-Eigenschaften ................................................................
Daten-Eigenschaften .................................................................
Weitere Eigenschaften ................................................................
Fenster- und Fokus-Ereignisse ........................................................
Tastatur- und Maus-Ereignisse ........................................................
Daten- und Filter-Ereignisse ..........................................................
Weitere Ereignisse ....................................................................
Methoden ...........................................................................
Unterformulare ......................................................................
Steuerelemente (Controls) ...............................................................
Allgemeines .........................................................................
Allgemeine Eigenschaften auf einen Blick ..............................................
Allgemeine Ereignisse auf einen Blick .................................................
Methoden von Steuerelementen .......................................................
Das Screen-Objekt ...................................................................
ActiveX-Steuerelemente ..................................................................
Vergleich mit den integrierten Steuerelementen ........................................
StatusBar als Beispiel .................................................................
Praxisbeispiele ..........................................................................
Das Textfeld programmieren ..........................................................
In ungebundene Textfelder ein- und ausgeben .........................................
Ein ungebundenes Kombinationsfeld füllen ............................................
141
142
142
143
144
144
145
145
146
146
146
147
147
147
148
148
148
153
157
158
161
162
162
163
163
163
164
170
171
172
173
176
177
178
181
182
182
183
194
195
196
198
198
199
203
203
205
207
10
Inhaltsverzeichnis
Ein Unterformular programmieren ...................................................
Das Register-Steuerelement kennen lernen .............................................
Eine Statusleiste programmieren ......................................................
Verwenden von Bild-Ressourcen ......................................................
Programmieren des Navigationssteuerelements ........................................
5
Berichte
...............................................................................
Allgemeines .............................................................................
Reportansichten .....................................................................
Die OpenReport-Methode ............................................................
Parameterübergabe ..................................................................
Wichtige Berichtseigenschaften ...........................................................
Formateigenschaften .................................................................
Dateneigenschaften ..................................................................
Grafikeigenschaften ..................................................................
Linien- und Stifteigenschaften ........................................................
Schrifteigenschaften ..................................................................
Farb- und Mustereigenschaften .......................................................
Sonstige Eigenschaften ...............................................................
Berichtsereignisse .......................................................................
Allgemeine Ereignisse ................................................................
Tastatur- und Mausereignisse .........................................................
Berichtsmethoden .......................................................................
Grafikmethoden (Übersicht) .........................................................
Scale ................................................................................
Line .................................................................................
PSet .................................................................................
Circle ...............................................................................
Print ................................................................................
TextWidth und TextHeight ...........................................................
Sonstige Methoden ...................................................................
Weitere Features des Report-Objekts ......................................................
Rich-Text-Felder drucken .............................................................
Verlauf eines Memofeldes drucken ....................................................
Eine Liste der Anlagen drucken .......................................................
Berichte nachträglich filtern ..........................................................
Berichte als PDF-Datei exportieren ....................................................
Berichte als RTF-Datei exportieren ....................................................
Das Printer-Objekt ......................................................................
Wo finde ich das Printer-Objekt? ......................................................
Die Printers-Collection ...............................................................
Auswahl eines Druckers ..............................................................
Speichern von Berichts-Optionen .....................................................
Eigenschaften des Printers ............................................................
Direkte Druckausgabe ...................................................................
Übersichten .............................................................................
DrawMode-Eigenschaft ..............................................................
Farbkonstanten ......................................................................
209
212
216
219
221
225
226
226
226
227
228
228
229
229
233
234
234
236
238
238
240
241
241
241
242
243
244
246
246
247
247
247
248
249
251
253
254
254
255
255
256
258
258
260
260
260
261
11
Inhaltsverzeichnis
6
Praxisbeispiele ..........................................................................
Aufruf eines Berichts mit Datenfilter ..................................................
Im Report gruppieren und rechnen ...................................................
Erstellen und Drucken eines Pivot-Diagramms .........................................
Berichte in Formularen anzeigen ......................................................
261
261
265
268
272
Programmieren mit Objekten
273
274
274
275
276
278
281
281
283
285
288
288
290
291
293
294
295
297
299
299
300
302
307
309
310
311
312
312
313
313
313
316
318
321
324
.........................................................
Objektvariablen .........................................................................
Objekttypen und Set-Anweisung ......................................................
Object-Datentyp .....................................................................
Form- und Report-Objekt ............................................................
Control-Objekt ......................................................................
Formular- und Berichtsmodule ..........................................................
Instanzen von Formularen und Berichten ..............................................
Benutzerdefinierte Form-/Report-Objekte .............................................
Eigenständige Klassenmodule .........................................................
Auflistungen ............................................................................
Forms/Reports .......................................................................
Controls .............................................................................
Collection-Objekt ....................................................................
Dictionary-Objekt ...................................................................
Property und Properties .............................................................
Module-Objekt und Modules-Auflistung ..............................................
Reference-Objekt und References-Auflistung ...........................................
Die Access-Objekthierarchie ..............................................................
Der Objektkatalog ...................................................................
Das Application-Objekt allgemein ....................................................
Eigenschaften und Methoden des Application-Objekts .................................
Weitere wichtige Objekte .............................................................
AccessObject ........................................................................
CurrentProject ......................................................................
CurrentData .........................................................................
Übersichten .............................................................................
Konstanten der ControlType-Eigenschaft ..............................................
Rückgabewerte der CurrentObjectType-Funktion ......................................
Praxisbeispiele ..........................................................................
Ein Steuerelemente-Array automatisch erstellen ........................................
Mit Formular-Instanzen arbeiten .....................................................
Mit einer eigenständigen Klasse experimentieren .......................................
Auf Objekte in Auflistungen zugreifen .................................................
Properties-Auflistungen untersuchen ..................................................
7
DAO-Programmierung
................................................................
Allgemeines .............................................................................
DBEngine ...........................................................................
Workspace-Objekt ...................................................................
Database-Objekt .....................................................................
Recordset-Objekt ....................................................................
Verwendung der Datenbankobjekte ...................................................
327
328
328
329
329
329
330
12
Inhaltsverzeichnis
8
Grundlegende Arbeitstechniken ..........................................................
Arbeitsumgebung festlegen ...........................................................
Datenbank anlegen und öffnen .......................................................
Tabellen/Indizes anlegen ..............................................................
Tabellen einbinden ...................................................................
Tabellen verknüpfen (Relationen) .....................................................
Abfragen erstellen/ausführen .........................................................
Öffnen von Tabellen/Abfragen ........................................................
Arbeiten mit Recordsets ..................................................................
Eigenschaften und Methoden von Recordsets ..........................................
Datensätze anzeigen ..................................................................
Datensätze hinzufügen/ändern ........................................................
Datensätze löschen ...................................................................
Datensätze sortieren ..................................................................
Datensätze suchen ...................................................................
Datensätze filtern ....................................................................
DAO in gebundenen Formularen .....................................................
Auf Anlage-Felder zugreifen ..........................................................
Auf mehrwertige Felder zugreifen .....................................................
Verlaufsverfolgung eines Memo-Felds .................................................
Weitere Funktionen ......................................................................
Eigenschaften (Properties) ............................................................
Transaktionen .......................................................................
Praxisbeispiele ..........................................................................
Eine Tabelle anlegen ..................................................................
Navigieren mit DAO .................................................................
Den Datensatzzeiger bewegen .........................................................
In Recordsets suchen .................................................................
Eine Datenbank analysieren ..........................................................
Komplexbeispiel: Telefonverzeichnis ......................................................
Eingabemaske .......................................................................
Anforderungen ......................................................................
Programmierung ....................................................................
Test und Bemerkungen ...............................................................
331
331
332
335
340
342
344
346
349
349
352
355
357
358
359
360
361
364
367
368
369
369
371
372
372
374
378
382
384
387
387
387
388
396
ADO-Programmierung
397
398
398
400
400
401
402
404
404
405
409
412
416
417
................................................................
Ein erster Blick auf ADO ................................................................
Kleines Einführungsbeispiel ..........................................................
Zur Geschichte von ADO .............................................................
Hinweise zu den ADO-Bibliotheken ...................................................
ADO und OLE DB ...................................................................
ADO-Objektmodell ..................................................................
ADO-Grundoperationen .................................................................
Beziehungen zwischen den Objekten ..................................................
Die Verbindung zur Datenquelle ......................................................
Aktionsabfragen mit dem Command-Objekt ..........................................
Recordsets mit Daten füllen ...........................................................
Weitere Operationen mit Recordsets ......................................................
Welche Recordset-Features werden unterstützt? ........................................
13
Inhaltsverzeichnis
9
Editieren von Datensätzen ............................................................
Hinzufügen von Datensätzen .........................................................
Löschen von Datensätzen .............................................................
Recordsets filtern ....................................................................
Ungebundene Recordsets .............................................................
Recordsets abspeichern ...............................................................
Bewegen in Recordsets ...............................................................
Daten direkt einlesen .................................................................
Sortieren ............................................................................
Suchen .............................................................................
Ereignisse auswerten .................................................................
Zugriff auf ADO-Auflistungen ...........................................................
Allgemeine Features .................................................................
Property und Properties ..............................................................
Field und Fields ......................................................................
Parameter und Parameters ............................................................
Error und Errors .....................................................................
Übersichten .............................................................................
Connection-Objekt ..................................................................
Command-Objekt ...................................................................
Recordset-Objekt ....................................................................
Praxisbeispiele ..........................................................................
Mit ADO auf eine Access-Datenbank zugreifen ........................................
Ein ADO-Datenklassenmodul verwenden .............................................
Ein intelligentes ADO-Frontend entwickeln ............................................
417
418
419
420
421
421
422
423
424
424
425
427
427
428
429
430
431
432
432
433
433
435
436
437
440
SQL in Theorie und Praxis
445
446
446
447
448
449
453
458
460
464
464
464
465
466
467
468
468
469
470
476
477
478
481
.............................................................
Einführung .............................................................................
SQL-Dialekte ........................................................................
Kategorien von SQL-Anweisungen ....................................................
Etwas (Datenbank-)Theorie ..............................................................
Allgemeines/Begriffe .................................................................
Normalisieren von Tabellen ...........................................................
Beziehungen zwischen den Tabellen ...................................................
Verknüpfen von Tabellen .............................................................
Testprogramm und Beispieldatenbank ....................................................
Hinweise zur Bedienung ..............................................................
Die Beispieldatenbank im Überblick ..................................................
ADO Query .........................................................................
Bemerkungen ........................................................................
Daten abfragen ..........................................................................
Abfragen mit SELECT ................................................................
Alle Spalten auswählen ...............................................................
Auswahl der Spalten ..................................................................
Filtern ...............................................................................
Beschränken der Ergebnismenge ......................................................
Eindeutige Records/doppelte Datensätze ...............................................
Tabellen verknüpfen .................................................................
Tabellen vereinigen ...................................................................
14
Inhaltsverzeichnis
10
Datensätze sortieren ..................................................................
Datensätze gruppieren ...............................................................
Unterabfragen .......................................................................
Anlage-Felder mit SQL verwalten .....................................................
History-Felder mit SQL abfragen ......................................................
Mehrwertige Felder mit SQL abfragen .................................................
Daten manipulieren .....................................................................
Einfügen einzelner Datensätze ........................................................
Einfügen von Abfragedaten ...........................................................
Exportieren/Importieren von Abfragedaten ............................................
Aktualisieren/Ändern ................................................................
Löschen .............................................................................
Erweiterte SQL-Funktionen ..............................................................
Berechnete/Formatierte Spalten .......................................................
Berechnungsfunktionen ..............................................................
NULL-Werte ........................................................................
Datum und Zeit in SQL-Abfragen .....................................................
Datentypumwandlungen .............................................................
Kreuztabellenabfragen ................................................................
Steuerelemente-Eigenschaften in Abfragen verwenden ..................................
Globale Variablen in Abfragen verwenden .............................................
Datenbankverwaltung mit SQL (DDL) ....................................................
Datenbanken ........................................................................
Tabellen .............................................................................
Indizes ..............................................................................
Tabellen/Indizes löschen oder verändern ..............................................
Sichten (Views) ......................................................................
Nutzer- und Rechteverwaltung ........................................................
Transaktionen .......................................................................
SQL in der Access-Praxis .................................................................
SQL in Abfragen .....................................................................
SQL im Basic-Code ..................................................................
SQL beim Oberflächenentwurf .......................................................
Basic-Funktionen in SQL-Anweisungen ...............................................
Tipps & Tricks ...........................................................................
Wie kann ich die Anzahl der Datensätze ermitteln? .....................................
Wie nutze ich Datumsteile in SQL zur Suche? ..........................................
Wie kann ich die Groß-/Kleinschreibung berücksichtigen? ..............................
Warum erhalte ich zu viele Datensätze beim Verknüpfen? ...............................
Wie lösche ich doppelte Datensätze aus einer Tabelle? ..................................
Praxisbeispiele ..........................................................................
Ein komfortables SQL-Abfrageprogramm erstellen .....................................
Datum und Zeit in SQL einbauen ....................................................
482
483
485
489
491
493
494
494
496
497
500
501
502
502
510
511
513
518
519
523
523
524
524
524
525
528
529
530
531
531
532
532
534
535
537
537
537
538
538
539
541
541
542
Fortgeschrittene Datenbankprogrammierung
545
546
547
550
554
.........................................
Datenbankverwaltung mit ADOX .........................................................
Datenbanken erstellen ................................................................
Tabellendefinition ....................................................................
Indexdefinition ......................................................................
Inhaltsverzeichnis
Erstellen von Prozeduren und Sichten .................................................
Tabellen verknüpfen (Relationen) .....................................................
Erstellen spezieller Feldtypen .............................................................
Automatische Zufallswerte (GUID) ...................................................
Memofeld mit Archiv-Funktion (Nur anfügen) ........................................
Anlage-Feld .........................................................................
Rich-Text-Feld .......................................................................
Multivalue-Feld (MVF) ..............................................................
Berechnete Spalten ...................................................................
Beschreibung von Datenbankfeldern setzen ............................................
Zugriffsschutz in Access-Datenbanken ....................................................
Grundlagen .........................................................................
Sichern auf Datenbankebene (DAO) ..................................................
Sichern auf Datenbankebene (ADO/ADOX) ...........................................
Erstellen neuer Benutzer und Gruppen (DAO) .........................................
Vergabe von Rechten (DAO) ..........................................................
Komplettbeispiel: Nutzerbasierte Sicherheit ............................................
Erstellen neuer Benutzer und Gruppen (ADOX) .......................................
Vergabe von Rechten (ADOX) ........................................................
Verschlüsseln von Datenbanken .......................................................
Multiuserzugriff ........................................................................
Verwenden der DAO .................................................................
Verwenden der ADO .................................................................
ODBC-Verbindungen ....................................................................
Ein Blick auf den ODBC-Datenquellen-Administrator ..................................
Erstellen einer ODBC-Verbindung (DAO) .............................................
Öffnen einer ODBC-Verbindung (DAO) ..............................................
Öffnen einer ODBC-Verbindung (ADO) ..............................................
Konfigurieren von ODBC-Verbindungen ..............................................
ODBCDirect ............................................................................
Zugriff auf Fremdformate ................................................................
dBASE III/IV- und FoxPro-Datenbanken ..............................................
Textdateien (TXT/ASC/CSV) .........................................................
Einbinden externer Tabellen ..............................................................
Verwenden der DAO .................................................................
Verwenden der ADOX ................................................................
Exportieren von Daten ...................................................................
TransferDatabase-Methode ...........................................................
Exportieren mit SQL-Anweisungen ...................................................
Replizieren von Datenbanken ............................................................
Replikation mit Hilfe der DAO ........................................................
Replikation mit Hilfe der JRO .........................................................
Optimierung ............................................................................
Indizes ..............................................................................
Abfrage-Optimierung ................................................................
Weitere Möglichkeiten ...............................................................
ADO/DAO/ODBC – Was ist schneller? ................................................
15
556
557
558
558
560
561
563
564
568
571
572
572
574
574
575
577
579
584
585
587
589
590
593
595
595
597
598
599
600
600
601
601
605
608
609
611
613
613
613
614
616
619
621
621
621
622
623
16
Inhaltsverzeichnis
11
Tipps & Tricks ...........................................................................
Wie prüft man die ADO-Versionsnummer? ............................................
Access-Datenbanken exklusiv öffnen ..................................................
Access-Datenbanken im Netzwerk ....................................................
Alle aktiven Verbindungen zur Datenbank auflisten ....................................
Das Datenbank-Kennwort ändern .....................................................
Abfragen über mehrere Datenbanken ..................................................
Datenbanken reparieren/komprimieren ...............................................
Komplexbeispiel: Datenbank-Backup/-Restore ............................................
Vorbemerkungen ....................................................................
Der selbst geschriebene Assistent ......................................................
Oberfläche ..........................................................................
Programmierung (Backup) ...........................................................
Test .................................................................................
Bemerkung ..........................................................................
625
625
625
625
626
626
628
628
629
629
630
630
631
640
640
Microsoft SQL Server
641
642
642
643
644
646
650
650
652
655
656
659
663
663
664
666
668
669
669
670
670
671
672
673
674
674
675
675
675
678
685
687
691
..................................................................
Allgemeines .............................................................................
Was ist SQL Server Express? ..........................................................
Unterschiede SQL Server Express/SQL Server/Jet-Engine ...............................
Client- versus Fileserver-Programmierung .............................................
Installation SQL Server Express .......................................................
Erste Schritte ............................................................................
Ein neues Access-Projekt (neue SQL Server-Datenbank) ................................
Den Netzwerkzugriff für den SQL Server Express aktivieren ............................
Integration in die Access-Oberfläche ..................................................
Upgrading von Access zum SQL Server ................................................
Die wichtigsten Client-Tools ..........................................................
Vordefinierte Datenbanken ...........................................................
Einschränkungen ....................................................................
Weitere SQL Server-Funktionen im Kurzüberblick .....................................
Datenbanken verwalten mit DMO ....................................................
Transact-SQL – die Sprache des SQL Servers ..............................................
Schreibweise .........................................................................
Kommentare ........................................................................
Zeichenketten .......................................................................
Variablen deklarieren/verwenden .....................................................
Bedingungen mit IF/ELSE auswerten ..................................................
Verwenden von CASE ................................................................
Verwenden von WHILE…BREAK/CONTINUE ........................................
Datum und Uhrzeit in T-SQL .........................................................
Verwenden von GOTO ...............................................................
Fehlerbehandlung ....................................................................
Praktisches Arbeiten mit dem SQL Server .................................................
Erstellen neuer SQL Server-Datenbanken ..............................................
Erzeugen und Verwalten von Tabellen .................................................
Erzeugen und Verwenden von Sichten (Views) .........................................
Verwenden von Gespeicherten Prozeduren .............................................
Programmieren von Triggern .........................................................
17
Inhaltsverzeichnis
12
Erzeugen von Datenbankdiagrammen .................................................
Volltextabfragen .....................................................................
Datenbanken sichern und wiederherstellen ............................................
Fehlerbehandlung .......................................................................
Das Fehlermodell des SQL Servers ....................................................
Verwenden von @@ERROR ...........................................................
Verwenden von RAISEERROR ........................................................
Fehlerbehandlung mit TRY...CATCH ..................................................
Fehlerbehandlung mit den ADO ......................................................
Datensicherheit .........................................................................
Überblick ...........................................................................
Verwalten mit dem SQL Server Management Studio ....................................
Verwalten mit T-SQL .................................................................
Verwalten mit SQLDMO .............................................................
Tipps & Tricks ...........................................................................
Alle Nutzer einer Datenbank ermitteln ................................................
Alle registrierten Microsoft SQL Server ermitteln .......................................
Alle Datenbanken und deren Tabellen ermitteln ........................................
Eine Tabelle löschen ..................................................................
Eine Tabelle mit den DMO erzeugen ..................................................
Anzahl der Datensätze beschränken ...................................................
Platzhalterzeichen in TSQL ...........................................................
Leerzeichen entfernen ................................................................
Teilstrings erzeugen ..................................................................
Mit einer Datenbankdatei verbinden ..................................................
Warum wird @@ERROR nicht korrekt verarbeitet? .....................................
Die Anzahl der Datensätze einer Abfrage bestimmen ...................................
Warum sind Abfragen mit Platzhaltern so langsam? ....................................
Groß-/Kleinschreibung berücksichtigen ...............................................
Das Ergebnis einer Stored Procedure speichern ........................................
Nach dem Löschen IDENTITY auf 0 setzen ............................................
Datenbankstruktur kopieren ..........................................................
Eine Tabellenspalte umbenennen ......................................................
Aktualisierungs- und Löschweitergaben realisieren .....................................
Daten aus verschiedenen Datenbanken anzeigen .......................................
Übersichten .............................................................................
Datentypen ..........................................................................
Unterschiede Access- und SQL Server-Datentypen .....................................
696
697
703
708
708
709
709
710
712
714
714
717
720
723
727
727
728
729
730
730
731
731
732
732
732
733
734
734
734
735
735
735
737
737
737
738
738
739
Dateien und Verzeichnisse
741
742
742
742
743
744
744
746
746
747
............................................................
Allgemeines .............................................................................
ANSI/ASCII/Unicode ................................................................
Gemeinsamer Dateizugriff ............................................................
Verwenden der File System Objects ...................................................
Zugriff auf das Dateisystem ..............................................................
Ermitteln aller Laufwerke und deren Eigenschaften .....................................
Ermitteln aller Verzeichnis-Eigenschaften ..............................................
Auflisten aller Unterverzeichnisse eines bestimmten Folders .............................
Rekursiv alle Unterverzeichnisse auflisten ..............................................
18
Inhaltsverzeichnis
13
Ein Verzeichnis erzeugen .............................................................
Das Datenbankverzeichnis bestimmen .................................................
Abfragen des Temp-/System-/Windows-Verzeichnisses .................................
Prüfen, ob eine Datei existiert .........................................................
Verzeichnisse/Dateien kopieren/löschen ...............................................
Auflisten aller Dateien eines Verzeichnisses .............................................
Name, Pfad und Extension einer Datei ermitteln .......................................
Einen Tempfile-Namen erzeugen ......................................................
Textdateien ..............................................................................
Klassischer Zugriff auf Textdateien ....................................................
Zugriff auf Textdateien mit den File System Objects ....................................
Typisierte Dateien .......................................................................
Öffnen ..............................................................................
Lesen/Schreiben .....................................................................
Weitere Dateien .........................................................................
Binärdateien .........................................................................
INI-Dateien .........................................................................
Die Registrierdatenbank .................................................................
Einführung ..........................................................................
API/VBA-Zugriff auf die Registrierungsdatenbank .....................................
API-Konstanten/Funktionen für den Registry-Zugriff ..................................
Prüfen, ob ein Schlüssel existiert ......................................................
Einen vorhandenen Wert auslesen .....................................................
Einen Schlüssel erstellen ..............................................................
Einen Wert setzen bzw. ändern ........................................................
Einen Schlüssel löschen ...............................................................
Ein Feld löschen .....................................................................
Aufruf der Funktionen ...............................................................
Dateidialoge ............................................................................
Variante 1 (Office 14 Library) .........................................................
Variante 2 (Windows-API) ...........................................................
Verzeichnisdialog (Windows-API) ....................................................
Übersichten .............................................................................
Dateifunktionen in Access ............................................................
FSO-Eigenschaften und -Methoden ...................................................
Praxisbeispiele ..........................................................................
Auf eine Textdatei zugreifen ..........................................................
Dateien suchen ......................................................................
Die Shellfunktionen verwenden .......................................................
Einen Verzeichnisbaum in eine TreeView einlesen ......................................
Ein Datenbank-Backup mit CD/DVD-Brenner realisieren ..............................
748
749
750
750
751
751
752
754
754
755
757
760
760
761
762
762
763
765
765
767
767
769
770
770
771
772
772
772
774
775
778
783
784
784
785
787
787
791
793
797
798
XML in Theorie und Praxis
805
806
806
809
810
812
............................................................
XML – etwas Theorie ....................................................................
Allgemeines .........................................................................
Der XML-Grundaufbau ..............................................................
Wohlgeformte Dokumente ...........................................................
Processing Instructions (PI) ..........................................................
19
Inhaltsverzeichnis
14
Elemente und Attribute ..............................................................
Verwendbare Zeichensätze ............................................................
XSD-Schemas ...........................................................................
Das Grundprinzip ...................................................................
Ein XSD-Schema mit Microsoft Access erzeugen .......................................
XML-Verarbeitung mit dem DOM .......................................................
Was ist das DOM? ....................................................................
Erste Schritte ........................................................................
Laden von Dokumenten ..............................................................
XML-Fehlerprüfung/-Analyse ........................................................
Erzeugen von XML-Dokumenten .....................................................
Auslesen von XML-Dateien ...........................................................
Einfügen von Informationen ..........................................................
Attribute oder Element ...............................................................
Suchen in den Baumzweigen ..........................................................
Das Interpretieren von Leerzeichen ....................................................
XML-Integration in Access ...............................................................
Importieren .........................................................................
Exportieren ..........................................................................
XML-Transformation mit XSLT .......................................................
Application-Objekt (ImportXML/ExportXML) ........................................
ADO-Recordset ......................................................................
Vor- und Nachteile von XML .............................................................
Grundsätzlicher Vergleich ............................................................
Zeitvergleich ADO/XML .............................................................
Praxisbeispiele ..........................................................................
Speichern im UTF-8-/UTF-16-Format ................................................
Laden UTF-8-/UTF-16-Format aus einem ADO-Stream ................................
XML-Daten asynchron verarbeiten ....................................................
XML-Daten in einer TreeView darstellen ..............................................
Navigieren zwischen einzelnen XML-Baumknoten .....................................
ADO-XML-Streams nachbearbeiten ..................................................
Strukturierte Textdaten in XML-Dokumente umwandeln ...............................
813
814
816
816
818
821
822
823
825
825
827
829
833
835
839
842
845
845
848
851
853
856
859
859
859
861
861
863
865
866
869
872
875
Programmschnittstellen
877
878
878
879
882
882
882
884
885
887
887
888
889
890
891
...............................................................
Zwischenablage .........................................................................
Kopieren/Einfügen mittels DoCmd-Objekt ............................................
Ein Clipboard-Objekt programmieren ................................................
API- und DLL-Einbindung ...............................................................
Allgemeines .........................................................................
Und was ist mit der 64-Bit Access Version? .............................................
Woher bekomme ich Informationen über die Win32-API? ..............................
Einbinden der Deklaration ...........................................................
Wert oder Zeiger? ....................................................................
Ausnahmen bestätigen die Regel – Übergabe von Strings ...............................
Verwenden von As Any ...............................................................
Übergabe von Arrays .................................................................
Besonderheiten mit Records ..........................................................
Zuordnen der Datentypen ............................................................
20
Inhaltsverzeichnis
15
OLE/ActiveX ............................................................................
Überblick ...........................................................................
OLE .................................................................................
Übersicht zum Objektfeld-Steuerelement ..............................................
Programmieren mit dem Objektfeld ...................................................
ActiveX-Code-Komponenten (OLE-Automation) ......................................
Programmieren mit ActiveX-Code-Komponenten ......................................
DDE ....................................................................................
Funktionsprinzip ....................................................................
Verwenden von Steuerelementen ......................................................
VBA-Programmierung ...............................................................
Scanner-Unterstützung per WIA ..........................................................
Was kann WIA? ......................................................................
Installation/Vorbereitung .............................................................
Einstieg mit kleiner Beispielanwendung ...............................................
Reagieren auf das Verbinden/Trennen von Geräten .....................................
Ermitteln der verfügbaren Geräte .....................................................
Anzeige der Geräteeigenschaften ......................................................
Ein Bild einlesen .....................................................................
Bild(er) drucken (Assistent) ..........................................................
Den Scanner-Assistent aufrufen .......................................................
Grafikbearbeitung ...................................................................
Arbeiten mit Excel-Arbeitsmappen .......................................................
Zugriffsmöglichkeiten ................................................................
TransferSpreadsheet ..................................................................
Import/Export per DAO ..............................................................
Daten auslesen .......................................................................
Zugriff auf Tabellenbereiche ..........................................................
OLE-Automation ....................................................................
Praxisbeispiele ..........................................................................
Eine externe Anwendung starten ......................................................
Informationen über das aktuelle System ermitteln ......................................
Das aktuelle Betriebssystem ermitteln .................................................
Den Windows-Lizenznehmer ermitteln ................................................
Zeitmessungen in Access durchführen .................................................
Microsoft Word über ActiveX steuern .................................................
Microsoft Excel über ActiveX steuern ..................................................
Von Visual Basic 2010 per OLE-Automation auf Access zugreifen ........................
892
892
893
894
897
900
901
904
904
904
906
907
907
907
909
910
911
911
913
914
915
916
918
918
919
922
926
928
929
932
932
934
937
939
940
944
947
949
Access im Internet/Intranet
955
956
956
957
958
959
960
960
962
...........................................................
Kleine Einführung .......................................................................
Internet/Intranet .....................................................................
TCP/IP und UDP ....................................................................
URL, HTTP und HTML ..............................................................
Webdienst/Webservice ...............................................................
Hyperlinks ..............................................................................
Hyperlinks in Tabellen ...............................................................
Hyperlinks verwenden ...............................................................
21
Inhaltsverzeichnis
Exportieren von Daten im HTML-Format .................................................
Automatisches Generieren von HTML-Seiten ..........................................
Exportieren mit Hilfe von SQL-Anweisungen ..........................................
HTML-Export über Textdateien ......................................................
Darstellen von HTML-Seiten in Microsoft Access ..........................................
Allgemeines .........................................................................
Das WebBrowserControl-Objekt ......................................................
Alternative: Einbinden des ActiveX-Steuerelements in Access ...........................
Einen Web-Browser programmieren ..................................................
Einsatz des InternetExplorer-Objekts ..................................................
Zusammenarbeit mit E-Mail-Programmen ................................................
Mailversand über das DoCmd-Objekt .................................................
Mailversand über OLE-Automation ...................................................
Mailversand über die MAPI ...........................................................
Eingabedaten per E-Mail sammeln ....................................................
16
Access und SharePoint
................................................................
Kurzeinführung SharePoint ..............................................................
Versionsübersicht ....................................................................
Soft- und Hardwareanforderungen ....................................................
SharePoint Foundation 2010 ..........................................................
SharePoint Server 2010 Enterprise Edition .............................................
Access Services – was ist das? ..........................................................
SharePoint-Listen ....................................................................
SharePoint-Datentypen ..............................................................
Formen der Zusammenarbeit von SharePoint und Access 2010 ..........................
Vorteile von SharePoint gegenüber Access .............................................
Import und Einbindung von SharePoint-Listen ............................................
Zu erwartende Probleme beim Import .................................................
Listen vom SharePoint-Server einbinden/importieren ..................................
Arbeiten mit Offline-Daten ...........................................................
Access-Daten auf den SharePoint-Server exportieren .......................................
Probleme beim Export ...............................................................
Alle Tabellen nach SharePoint migrieren ...............................................
Access-Datenbanken in SharePoint veröffentlichen .....................................
Tipps & Tricks ...........................................................................
Eine SharePoint-Liste erstellen ........................................................
Eine SharePoint-Ansicht erstellen .....................................................
Die Datenblattansicht nutzen .........................................................
Ärger mit dem Offline-Modus ........................................................
Tabellen per Browser importieren .....................................................
17
Die Access Services
....................................................................
Das Grundprinzip .......................................................................
Unterscheidung zwischen Client- und Web-Objekten ...................................
Vor- und Nachteile ...................................................................
Grundsätzliche Einschränkungen .....................................................
Verwendung der Access-Runtime .....................................................
964
965
966
966
968
968
969
972
973
975
976
977
979
980
981
987
988
988
989
990
991
992
992
993
994
995
995
996
999
1002
1005
1006
1007
1007
1010
1010
1013
1015
1016
1017
1019
1020
1021
1023
1024
1025
22
Inhaltsverzeichnis
18
Das Veröffentlichen im Detail ............................................................
Eine neue Webdatenbank erstellen ....................................................
Eine bestehende Datenbank migrieren .................................................
Veröffentlichen und erster Test ........................................................
Hilfe! Was passiert mit meinen IDs? ...................................................
Ein Standardformular festlegen .......................................................
Synchronisieren ......................................................................
Synchronisationskonflikte ............................................................
Offline-Szenario/Zwischenspeichern der Daten ........................................
Die Web- und Clientobjekte im Detail ....................................................
Übersicht ............................................................................
Arbeiten mit Webtabellen ............................................................
Abfragen ............................................................................
Makros ..............................................................................
Webformulare/Clientformulare .......................................................
Berichte .............................................................................
Tipps & Tricks ...........................................................................
Administrieren der Access Services ....................................................
Einstellungen innerhalb des eigenen Webs vornehmen ..................................
Anonymen Zugriff auf die Website ermöglichen .......................................
Distribution Ihrer Webanwendung ....................................................
Eine Webdatenbank in eine lokale Datenbank umwandeln ..............................
1026
1026
1027
1028
1031
1032
1033
1034
1035
1039
1039
1040
1043
1047
1049
1051
1051
1051
1053
1055
1059
1059
Datendienste in Microsoft Access einbinden
1061
1062
1062
1063
1066
1067
1068
1069
1069
1069
1074
1078
1080
1081
..........................................
Übersicht zu den Konzepten ..............................................................
Ein erster Überblick ..................................................................
Grundlagen von Webdiensten .........................................................
Die Bedeutung der Business Connectivity Services .....................................
Verwendung der BDCM-Dateien ......................................................
Einschränkungen ....................................................................
Unsere Werkzeuge ...................................................................
Komplettbeispiel: Vom Webdienst bis zur Einbindung ......................................
Erstellen des Webdienstes mit Visual C# ...............................................
Erzeugen der BDCM-Datei ...........................................................
Einbinden in Microsoft Access ........................................................
Zugriff auf Webdienste mit VBA ..........................................................
Fazit ....................................................................................
19
Anwendungsdesign
...................................................................
Access-Oberflächengestaltung ............................................................
Beschriften der Kopfzeile .............................................................
Informationen in der Statuszeile anzeigen .............................................
Fortschrittsanzeige mit dem Progressbar realisieren ....................................
Navigationsbereich konfigurieren .....................................................
Access-Hauptfenster komplett ausblenden .............................................
Steuern der Anwendung .................................................................
Autostart mit AutoExec-Makro .......................................................
Formulare automatisch starten ........................................................
Warten auf das Ende .................................................................
1083
1084
1084
1086
1087
1088
1094
1097
1097
1098
1099
23
Inhaltsverzeichnis
20
Access per VBA beenden ..............................................................
Runtime-Modus .....................................................................
Befehlszeilen-Optionen verwenden ....................................................
Entwickeln von Assistenten und Add-Ins ..................................................
Assistenten-Typen ...................................................................
Einbinden der Assistenten in die Access-IDE ...........................................
Menü-Assistent (Beispiel) ............................................................
Objekt-Assistent (Beispiel) ...........................................................
Steuerelemente-Assistent (Beispiel) ...................................................
Eigenschaften-Assistent ..............................................................
Entwickeln und Einbinden von Managed Add-Ins .........................................
Interaktion Anwendung/Add-In ......................................................
Entwurf des Add-Ins .................................................................
Verweise einrichten ..................................................................
Der Quellcode des Add-Ins ...........................................................
Formularentwurf für das Add-In ......................................................
Kompilieren und Einbinden ..........................................................
Das Access-Formular .................................................................
1099
1100
1101
1102
1102
1103
1105
1107
1110
1113
1114
1114
1115
1117
1118
1121
1121
1122
Menüband und Backstage-Ansicht programmieren
1125
1126
1127
1128
1129
1130
1131
1132
1132
1135
1136
1137
1137
1139
1140
1141
1142
1143
1143
1144
1145
1146
1146
1146
1150
1151
1152
1153
1153
1155
...................................
Allgemeine Grundlagen ..................................................................
Manuelle Konfigurationsmöglichkeiten ................................................
Grundprinzip der Programmierung ...................................................
Verwenden der Tabelle USysRibbons ..................................................
Application.LoadCustomUI als Alternative ............................................
Ein kleines Testprogramm ................................................................
Praktische Aufgabenstellungen ...........................................................
Informationen über Steuerelemente und Symbole erhalten .............................
Hauptregisterkarten ausblenden ......................................................
Einzelne Registerkarten ausblenden ...................................................
Einzelne Gruppen ausblenden ........................................................
Eigene Registerkarten, Gruppen und Schaltflächen einfügen ............................
Ereignisbehandlung mit VBA-Code/Makros ...........................................
Verändern von Eigenschaften mit VBA-Callbacks ......................................
Aktualisieren des Menübands per VBA-Code ..........................................
Kontextabhängige Registerkarten .....................................................
Registerkarten per VBA aktivieren .....................................................
Fehlermeldungen des Menübands anzeigen ............................................
Vorhandene Funktionen des Menübands ändern .......................................
Die Schnellzugriffsleiste erweitern/programmieren .....................................
Übersicht der Steuerelemente ............................................................
labelControl-Steuerelement ...........................................................
button-Steuerelement ................................................................
separator-Steuerelement .............................................................
toggleButton-Steuerelement ..........................................................
buttonGroup-Steuerelement .........................................................
checkBox-Steuerelement .............................................................
editBox-Steuerelement ...............................................................
comboBox-Steuerelement ............................................................
24
Inhaltsverzeichnis
21
dropDownElement-Steuerelement ....................................................
gallery-Steuerelement ................................................................
menu-Steuerelement .................................................................
splitButton-Steuerelement ............................................................
dialogBoxLauncher ..................................................................
Die Backstage-Ansicht konfigurieren und programmieren ..................................
Die Standardansicht verändern .......................................................
Die drei möglichen Layouts für Registerkarten .........................................
Die neuen Möglichkeiten von Gruppen ................................................
Anordnen von Steuerelementen mit LayoutContainern .................................
Das Verhalten der Schaltflächen beeinflussen ...........................................
Mit VBA/Makros auf Ereignisse reagieren ..............................................
Tipps & Tricks ...........................................................................
Die guten alten Access 2003-Menüs anzeigen ...........................................
Das Office-Menü für Access 2007 anpassen ............................................
XML-Daten komfortabel editieren ....................................................
Arbeiten mit dem RibbonCreator .....................................................
Übersichten .............................................................................
Callback-Methoden für das Menüband ................................................
1158
1161
1163
1166
1167
1168
1170
1172
1177
1180
1181
1181
1183
1183
1184
1185
1186
1188
1188
Techniken der Programmentwicklung
1191
1192
1193
1194
1195
1196
1197
1201
1201
1202
1204
1204
1205
1205
1206
1207
1209
1209
1210
1210
1211
1213
1213
1214
1214
1217
1220
1223
.................................................
Fehlersuche .............................................................................
Direktfenster ........................................................................
Verwendung des Debug-Objekts ......................................................
Arbeiten mit dem Lokal-Fenster ......................................................
Überwachungs-Fenster ..............................................................
Noch mehr Debugging ...............................................................
Fehlerbehandlung .......................................................................
Anweisungen zum Error-Handling ....................................................
Beispiele zum Error-Handling ........................................................
Fehlerbehandlung per Ereignis ........................................................
Fehlerbehandlung komplett deaktivieren ..............................................
Dialogfelder .............................................................................
Einfache MsgBox-Anweisung .........................................................
Ausführliche MsgBox-Anweisung .....................................................
Rückgabewerte der MsgBox-Funktion .................................................
Abfrage von Werten mit der InputBox-Funktion .......................................
Libraries unter Access ....................................................................
Erstellen und Einbinden ..............................................................
Debugging ..........................................................................
Einfaches Beispiel ....................................................................
Hinweise ............................................................................
Programmieren von ActiveX-DLLs mit VB 2010 ...........................................
Die Wahl der Entwicklungsumgebung .................................................
Vorbereitungen ......................................................................
Programmierung ....................................................................
Einbinden in Access ..................................................................
Registrieren der Assembly ............................................................
25
Inhaltsverzeichnis
DLL-Programmierung mit C++ 2010 .....................................................
Entwicklungsumgebung ..............................................................
Projekt und Dateien erstellen .........................................................
Ein- und Austrittsprozedur ...........................................................
Aufrufkonventionen .................................................................
Funktionsparameter und Variablentypen ..............................................
Beispiel einer Sortierroutine ..........................................................
Tipps und Tricks .....................................................................
Entwickeln von HTML-Hilfedateien ......................................................
HTML Help Workshop ...............................................................
Unterschiede WinHelp – HTMLHelp ..................................................
Kurzbedienung am Beispiel ...........................................................
Aufruf der HTML-Hilfe unter Access ..................................................
Alternative Hilfe-Entwicklungsumgebung .............................................
Verteilen von Access-Anwendungen .......................................................
Vorbereitungen ......................................................................
Erstellen der Installationsdateien ......................................................
Praxisbeispiele ..........................................................................
Arbeiten mit dem Debugger ..........................................................
1223
1223
1224
1226
1227
1227
1231
1234
1235
1236
1236
1237
1240
1240
1241
1242
1242
1247
1247
A
Glossar
1253
B
Wichtige Dateierweiterungen
C
ANSI-Tabelle
D
Wichtige Tastaturcodes
................................................................................
.........................................................
1259
..........................................................................
1261
................................................................
1265
Tastencodes für KeyDown, KeyUp ..................................................... 1266
Tastencodes der SendKeys-Funktion ................................................... 1268
Stichwortverzeichnis
...................................................................
1269
Vorwort
Microsoft Access ist weit mehr als nur eine komfortable Datenbankverwaltung, denn dem fortgeschrittenen
Anwender steht darüber hinaus eine vollständige und vor allem preiswerte Entwicklungsumgebung für
individuell geprägte Datenbankanwendungen zur Verfügung. Zusammen mit der objekt- und ereignisorientierten Programmiertechnik bilden VBA, SQL, DAO/ADO, Datenmakros und XML ein mächtiges
Werkzeug, um leistungsfähige Datenbank-Applikationen mit besserer Performance und auf beachtlich
höherem Niveau zu erstellen.
Zum Buchinhalt
Dieses Buch bietet Ihnen eine fundierte Einführung in die Programmierung von Datenbanken mit Access
2010. Es handelt sich hierbei um die wesentlich erweiterte und überarbeitete Neuauflage unserer bekannten
Vorgängertitel zu Access 95/97/2000/2002/2003/2007 wobei alle wesentlichen Neuerungen berücksichtigt
wurden.
Die ausführliche Würdigung der unter Access 2010 eingeführten Neuerungen drückt sich unter anderem in
neuen Kapiteln zu Datenmakros, Microsoft SharePoint Server, Access Services und den Datendiensten aus.
Bevor Sie aber mit der Lektüre beginnen, eine Warnung: Das vorliegende Werk ist kein Einsteigerbuch! Sie
sollten vorher bereits einige Erfahrungen in der Datenbankprogrammierung gesammelt haben und sich mit
Makros, Ausdrücken und Abfragen sowie der Gestaltung von Tabellen, Formularen und Berichten einigermaßen auskennen. Falls dies nicht der Fall ist, empfehlen wir Ihnen das Studium einführender Literatur, wie
zum Beispiel die bei Microsoft Press zu Access erschienenen Grundlagentitel.
Dieses Buch wurde von Praktikern für die Bedürfnisse der Praxis geschrieben. Die Autoren haben deshalb
bei der Zusammenstellung des Inhalts weniger aus den zu Access 2010 mitgelieferten Dokumentationen,
sondern vor allem aus eigenen Quellen und Erfahrungen geschöpft:
■ Lehrgänge für Datenbankprogrammierer
■ Vorlesungen über Datenbankprogrammierung an Fachhochschulen
■ und (last, but not least) das zahlreiche Feedback unserer Leser zu unseren Vorgängertiteln
Mit VBA (Visual Basic for Applications) stoßen Sie das Tor zur Windows-Programmierung weit auf und
greifen direkt auf die mächtige Access-Bibliothek, die DAO-/ADO-Datenzugriffsobjekte oder auf das
Windows-API (Application Programming Interface) zu. Verständlicherweise ist es im Rahmen dieses Buches
unmöglich, auf alle Funktionen sowie auf alle Objekte und Sprachelemente der einzelnen Bibliotheken
einzugehen. Dies ist Sache der Befehlsreferenz, auf die Sie am bequemsten über die integrierte OnlineHilfedatei zugreifen können. Ziel des Buches soll es sein, einen Gesamtüberblick zu geben und praktische
Konzepte zu vermitteln.
28
Vorwort
In den insgesamt 21 Kapiteln finden Sie:
■ Ausführliches Know-how über die objekt- und ereignisorientierte Gestaltung der Benutzerschnittstelle
von Microsoft Access
■ Eine umfassende Einführung in VBA, SQL und XML mit einer übersichtlichen und auf das Wesentliche
reduzierten Sprachbeschreibung
■ Eine gestraffte Einführung in den Datenbankzugriff (Jet, SQL-Server, Microsoft SQL Server 2008) unter
Verwendung von DAO/ADO
■ Informationen zu Internet-/Intranet-Technologien sowie zur Anbindung an die .NET-Technologie
■ Eine gestraffte Einführung in die Programmierung von Datenmakros
■ Eine Übersicht zur Zusammenarbeit mit dem Microsoft SharePoint Server sowie dem Zugriff auf
Datendienste
■ Viele Kapitel verfügen über einen Übersichtsteil, in dem wichtige Informationen (z.B. relevante Eigen-
schaften, Methoden und Ereignisse von zentralen Objekten) griffbereit zur Verfügung stehen
■ Zahlreiche Praxisbeispiele am Ende der Kapitel dienen der Vertiefung der vermittelten theoretischen
Grundlagen.
HINWEIS
Als ideale praktische Ergänzung empfehlen wir unseren ebenfalls bei Microsoft Press erschienenen Titel
»Microsoft Access Programmierrezepte« (ISBN 978-3-86645-098-1 ) mit Hunderten von nachvollziehbaren Problemlösungen
und Codebeispielen zu allen im vorliegenden Buch behandelten Themen.
Begleitdateien
Die zu diesem Buch mitgelieferten Begleitdateien enthalten, mit wenigen Ausnahmen, sämtliche Quelltexte
der Kapitel 1 bis 21 im .accdb-Format (Access 2007/2010). Falls Sie dieses Buch als ebook erworben haben,
können sie die Begleitdateien unter www.microsoft-press.de/support.asp?s110=459 oder
msp.oreilly.de/support/9783866454590/656 herunterladen.
Für Einsteiger einige Hinweise, die wir aufgrund von Erfahrungen mit unseren Vorgängertiteln diesmal
nicht vergessen wollen:
■ Sie sollten natürlich vorher Microsoft Access 2010 auf Ihrem PC installiert haben.
■ Kopieren Sie die gewünschten Dateien auf die Festplatte. Sollte doch einmal eine Datenbank/Datei beim
Testen der Beispiele nicht gefunden werden, müssen Sie im betreffenden Modul die Pfadangaben anpassen.
■ Falls doch einmal ein Beispiel nicht funktionieren sollte, lesen Sie die beigefügte Readme-Datei.
■ Zumindest für das Kapitel 11 sowie das Testen von .adp-Projekten ist die Installation des Microsoft SQL
Server 2008 bzw. der entsprechenden Express Version erforderlich. Beachten Sie die erforderlichen
Sicherheitseinstellungen für den Zugriff.
■ Bevor Sie die Beispiele des Kapitel 16 und 17 (Sharepoint Server) ausprobieren können, sollten Sie sich
mit den in diesem Kapitel beschriebenen Voraussetzungen vertraut machen.
29
Vorwort
Sicherheitseinstellungen
Im Zeitalter wachsender Internetkriminalität müssen Sie sich daran gewöhnen, dass zum Schutz Ihres Computers reichlich Sicherheitshürden aufgebaut wurden: Access-Sicherheit (VBA), Systemsicherheit (Windows
7), SQL Server-Sicherheit, .NET-Sicherheit.
Das führt für Sie als VBA-Programmierer zunächst zu folgender Konsequenz:
HINWEIS
Aufgrund der sehr restriktiven Sicherheitsanforderungen von Access 2010 wird es Ihnen in der Regel nicht
gelingen, ohne entsprechende Anpassungen der Access 2010-Entwicklungsumgebung ihren eigenen Code bzw. die zu diesem
Buch mitgelieferten Beispiele zum Laufen zu bringen!
Unter Access 2010 wird Visual Basic-Code standardmäßig als »unsicherer Code« eingestuft. Falls das
Formular den Visual Basic-Code nicht ausführt und stattdessen unterhalb des Menübands eine Sicherheitswarnung zeigt, klicken Sie auf die »Inhalt aktivieren«-Schaltfläche.
Um diese lästigen Sicherheitswarnungen generell zu verhindern, sollten Sie (zumindest für die Dauer der
Programmentwicklung) im Sicherheitscenter Ihr Datenbankverzeichnis als Vertrauenswürdigen Speicherort
hinzufügen.
HINWEIS
Eine detaillierte Anleitung, wie Sie mit diesem »heißen Eisen« am besten umgehen, finden Sie im Abschnitt
»Sicherheitseinstellungen« des Kapitels 1 (Seite 42).
Zu den Autoren
Hinweise zum Buch und Leseranfragen können Sie über unsere Website
WWW
www.doko-buch.de
direkt an die Autoren richten.
Dort finden Sie auch eventuelle Fehlerberichtigungen und ergänzende Beispiele.
Danksagung
Danken möchten wir vor allem Frau Sandra Michel von Microsoft Press für die tatkräftige und verständnisvolle Unterstützung beim Zustandekommen des Werkes. Ein ebenso großes Dankeschön gebührt unseren
Familien, ohne deren unerschöpfliche Nachsicht ein Projekt wie dieses nicht erfolgreich hätte abgeschlossen
werden können.
Wir hoffen, Ihnen mit diesem Werk einen treuen und möglichst langlebigen Begleiter für die Entwicklung
anspruchsvoller Datenbankapplikationen an die Hand gegeben zu haben, der es verdient, seinen ständigen
Platz nicht im Regal, sondern griffbereit neben dem Computer einzunehmen.
Viel Spaß und Erfolg beim Programmieren mit Access!
Walter Doberenz und Thomas Gewinnus
Herunterladen