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