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