Keine Angst vor Microsoft Access! | 1 |
Inhaltsverzeichnis | 5 |
Ein Leserbrief | 13 |
Einleitung | 15 |
Warum ist Access anders? | 15 |
Was habe ich mit Ihnen vor? | 16 |
Wer sollte dieses Buch kaufen? | 17 |
1: Ein Blick hinter die Kulissen | 21 |
In diesem Kapitel | 22 |
Technische Voraussetzungen | 22 |
Ist Access eine Datenbank? | 23 |
Access ohne Access? | 26 |
Die Access-Anwendung | 27 |
Formulare benutzen | 29 |
Das Formular frmMitglieder | 30 |
Das Formular frmMannschaften | 36 |
Das Formular frmTraining | 38 |
Das Formular frmTypen | 39 |
Hilfe! | 40 |
Benutzerfreundlichkeit | 41 |
Tabellen, Felder und Primärschlüssel | 42 |
Beziehungen und Fremdschlüssel | 50 |
Datenmodellierung muss sein! | 53 |
Formulare entwerfen | 54 |
Eigenschaften von Formularelementen | 55 |
Datensatzquelle | 56 |
Unterformulare | 58 |
Datensatzherkunft und Steuerelementinhalt | 61 |
Textfelder | 61 |
Kombinationsfelder | 61 |
Listenfelder | 63 |
VBA – ganz kurz | 65 |
VBA-Prozeduren | 65 |
Schaltflächen starten VBA-Prozeduren | 67 |
Was ist wichtig? | 68 |
2: Datenmodellierung | 69 |
In diesem Kapitel | 70 |
Ein Unternehmensdatenmodell... | 70 |
… und seine Erstellung | 74 |
Überall Bemerkungen | 76 |
Preise – wofür? | 76 |
Kunden ohne Aufträge? | 77 |
Kein Material und keine Leute? | 77 |
Keine Fremdschlüssel? | 78 |
Fragen, fragen, fragen! | 79 |
Anschrift1, Anschrift2 | 80 |
Typ | 81 |
Status | 82 |
Material vs. Materialart | 82 |
Mengen und Zeiten in Zwischentabellen | 83 |
Die strukturierte Szenario-Beschreibung | 86 |
Die Überführung in das physische Modell | 87 |
Das Vereinsmodell | 89 |
Das logische Datenmodell | 90 |
Das physische Datenmodell | 91 |
Das Privatmodell | 92 |
Das logische Datenmodell | 93 |
Das physische Datenmodell | 95 |
Hierarchische Ordnungen | 97 |
Modellbesonderheiten und -erweiterungen | 99 |
1:1-Beziehungen | 99 |
Dreifachbeziehungen | 102 |
Rollen in Beziehungen | 104 |
Typ, Art, Status | 105 |
Funktionshinterlegung | 106 |
Listen | 107 |
Benutzerverwaltung | 108 |
Flexible Objekteigenschaften | 110 |
Wie alles zusammenhängt | 111 |
Modellierungswerkzeuge | 111 |
PowerPoint | 112 |
Visio | 117 |
»Richtige« Tools | 118 |
Interviews sind schwierig | 119 |
ADaMo | 120 |
Was ist wichtig? | 120 |
3: Erste Formulare | 123 |
In diesem Kapitel | 124 |
Tabellen anlegen | 124 |
Beziehungen definieren | 128 |
Referentielle Integrität | 128 |
Beziehung einer Tabelle zu sich selbst | 129 |
Kardinalitäten | 130 |
Löschweitergabe | 130 |
Versionen | 131 |
Testdaten eingeben | 132 |
Auf die Reihenfolge achten | 132 |
Aus Fehlern lernen | 133 |
Nachschlagefelder | 134 |
Ein einfaches Stammdatenformular | 134 |
Schritt 1: Mit dem Formular-Assistenten Formulare erzeugen | 135 |
Schritt 2: Text- und Bezeichnungsfelder anordnen | 136 |
Schritt 3: Listenfeld hinzufügen | 138 |
Schritt 4: Schaltflächen hinzufügen | 140 |
Schritt 5: Standardbedienelemente entfernen | 142 |
Schritt 6: VBA-Code ergänzen | 143 |
Schritt 7: Layout gestalten | 145 |
Ein Formular mit Unterformular | 146 |
Schritt 1: Mit dem Formular-Assistenten Formulare erzeugen | 146 |
Schritt 2: Text- und Bezeichnungsfelder anordnen | 148 |
Schritt 3: Listenfeld hinzufügen | 149 |
Schritt 4: Schaltflächen hinzufügen | 150 |
Schritt 5: Standardbedienelemente entfernen | 151 |
Schritt 6: VBA-Code ergänzen | 151 |
Schritt 7: Layout gestalten | 151 |
Einzelzuordnung | 152 |
Schritte 1 bis 3 | 153 |
Schritt 4: Aktive Bedienelemente hinzufügen | 154 |
Schritte 5 bis 7 | 155 |
Die beiden Grundbausteine | 157 |
Das Startformular | 159 |
Was ist wichtig? | 160 |
4: Daten für die Datenbank | 163 |
In diesem Kapitel | 164 |
Die Ausgangssituation | 164 |
Datenarten | 166 |
Zahlen | 166 |
Datumsangaben | 167 |
Texte | 167 |
Tabellen auf Webseiten | 168 |
Das Formular frmSpaltenFuellen | 169 |
Excel-Funktionen zur Textbearbeitung | 169 |
Generierung von Testdaten | 171 |
Erzeugung der Daten in Excel | 171 |
Import der Daten in Access | 173 |
Übernahme von Echtdaten | 176 |
Datenorganisation: Datenmenge | 177 |
Spalten markieren | 177 |
Formeln eingeben | 178 |
Wertekopie auf sich selbst | 178 |
Datenqualität | 179 |
Fehlende Daten | 179 |
Zusätzliche Daten | 181 |
Fehlerhafte Daten | 181 |
Duplikate (Kundenliste) | 181 |
Duplikate (Aufträge) | 183 |
Duplikate (Kundenliste, Aufträge) | 183 |
Noch einmal: Datenorganisation | 184 |
Datenformat | 184 |
Datenmischung | 184 |
Datum als Text | 185 |
Typ als Spalte | 186 |
Verschlüsselung | 189 |
Disposition | 189 |
Was ist wichtig? | 190 |
5: VBA – Grundlagen | 191 |
In diesem Kapitel | 192 |
Programmieren – muss das sein? | 192 |
Ein Beispiel | 192 |
»Hackermentalität« | 193 |
Fehler finden und korrigieren | 194 |
Das VBA-Fenster | 194 |
Syntaxfehler | 196 |
Laufzeitfehler | 198 |
Logische Fehler | 201 |
Die Entwicklungsumgebung | 202 |
Der Editor | 203 |
Objekte und Ereignisse | 205 |
Der Debugger | 207 |
Symbolleiste anpassen | 208 |
Programmierbefehle | 209 |
Das Drumherum | 209 |
Hallo Welt! | 211 |
If-Then-Else | 212 |
For-Next | 216 |
Do-While-Loop | 217 |
Experimente | 218 |
Select-Case | 219 |
MsgBox | 220 |
Eingabeparameter | 220 |
Antwortwert | 221 |
Daten anzeigen | 222 |
Noch einmal: Eingabeparameter | 223 |
Zeilenumbruch | 223 |
Laufzeitfehler verhindern | 224 |
Benutzereingaben prüfen | 224 |
Bedienreihenfolge erzwingen | 225 |
Fehlfunktionen vorhersehen | 226 |
Division durch null | 226 |
Nicht existierende Daten | 227 |
OnError | 227 |
Was ist wichtig? | 229 |
6: Steuerelemente | 231 |
In diesem Kapitel | 232 |
Eigenschaften von Steuerelementen | 232 |
Bezeichnungsfeld | 233 |
Textfeld | 234 |
Schaltfläche | 239 |
Der Befehlsschaltflächen-Assistent | 239 |
Programmierung der Schaltfläche | 241 |
Nachträgliche Namensänderung | 241 |
Listenfeld und Kombinationsfeld | 242 |
Unsichtbare Spalten | 243 |
Gebundene Spalte | 243 |
Spaltennummerierung | 244 |
Verwenden der Assistenten … | 245 |
… in ungebundenen Formularen | 245 |
… in gebundenen Formularen | 246 |
Optionsgruppe | 247 |
Registerkarten | 249 |
Enabled, Visible und Locked | 252 |
Exakte Platzierung | 253 |
Das eigene Menüband | 255 |
XML in Ten Minutes | 256 |
Der XML-Code für unser Menüband | 257 |
1. Schritt: Definition der Struktur | 259 |
2. Schritt: Bekanntmachen der Definition | 261 |
3. Schritt: Anzeige des Menübands | 262 |
4. Schritt: Programmierung der Klicks | 262 |
Ein letztes Sahnehäubchen … | 263 |
Was ist wichtig? | 264 |
7: SQL | 265 |
In diesem Kapitel | 266 |
Wofür SQL? | 266 |
Die Übungsdatenbank | 267 |
CREATE, INSERT, UPDATE, DELETE | 268 |
create table | 268 |
insert into | 269 |
update | 270 |
delete FROM | 270 |
Ausprobieren? | 270 |
SELECT | 272 |
Daten aus einer Tabelle abrufen | 272 |
Daten aus mehreren Tabellen abrufen | 272 |
Ausprobieren! | 274 |
Inner Join | 275 |
Outer Join | 278 |
Schnell soll es gehen! | 284 |
Was fehlt noch? | 288 |
Abfragen! | 289 |
Beziehungen in Abfragen | 290 |
Weil es so wichtig ist … | 291 |
VBA, SQL – und was noch? | 292 |
Was ist wichtig? | 292 |
8: VBA – Anwendungen | 295 |
In diesem Kapitel | 296 |
Die Datenbank | 296 |
Gebundene und ungebundene Formulare | 297 |
»Handgeschnitzte« Kommunikation | 300 |
Recordsets | 300 |
Direktzugriff mit SQL | 302 |
Eingebettetes Makro vs. Ereignisprozedur | 303 |
Speichern der Formularinhalte | 304 |
Mit einem Recordset | 304 |
Mit SQL | 305 |
Implizites Speichern | 305 |
Muss-Felder überprüfen | 306 |
»Geisterdaten« | 307 |
Datenauswahl mit Listenfeldern | 307 |
Exkurs: Das Objektmodell | 309 |
Lesen von Werten aus Tabellen | 311 |
Mit einem Recordset | 311 |
Mit SQL | 312 |
Neue Datensätze in Tabellen anlegen | 313 |
Mit einem Recordset | 313 |
Mit SQL | 314 |
Löschen von Werten in Tabellen | 314 |
Mit einem Recordset | 315 |
Mit SQL | 316 |
Löschen rückgängig machen? | 317 |
Standardlösungen | 317 |
VBA-Code in Formularentwürfen ergänzen (»Schritt 6«) | 318 |
Kombinationsfelder absichern (»Einzelzuordnung, Schritt 4«) | 320 |
Erste Zeile eines Listenfelds anzeigen | 321 |
Sub-Prozeduren | 321 |
Text in ein Bezeichnungsfeld schreiben | 323 |
Prüfen, ob ein bestimmter Datensatz existiert | 323 |
Disponieren | 324 |
Bearbeiteten Datensatz nach Requery wieder anzeigen | 326 |
Formular von einem anderen Formular aus öffnen | 327 |
Dialogfeld für die Datensuche öffnen | 328 |
Alle Datensätze eines Recordsets bearbeiten | 329 |
Alle Textfelder leeren (For Each …) | 329 |
Auf das übergeordnete Formular zugreifen (Parent) | 330 |
Abhängige Listen- und Kombinationsfelder (RowSource) | 330 |
Zwischen verschiedenen Anzeigemodi umschalten (Umschaltfläche) | 332 |
Mehrere Werte aus einer Liste zuordnen | 333 |
Mehrere Spalten in einem Kombinationsfeld anzeigen | 335 |
Was ist wichtig? | 336 |
9: Formulargrundtypen | 337 |
In diesem Kapitel | 338 |
Eine Tabelle | 338 |
Eine Tabelle mit einer 1:n-Beziehung | 339 |
Eine Tabelle mit einer n:1-Beziehung | 342 |
Eine Tabelle mit einer 1:n:1- und einer n:1-Beziehung | 344 |
Nur Fremdschlüssel in der Zwischentabelle | 344 |
Daten in der Zwischentabelle | 346 |
Eine Tabelle mit zwei n:1-Beziehungen | 348 |
Eine Tabelle mit einer 1:m:n- und einer 1:n:1-Beziehung | 350 |
Eine Tabelle mit einer 1:n- und einer n:1-Beziehung | 351 |
Eine Tabelle mit zwei 1:n:1-Beziehungen | 353 |
Eine Tabelle mit zwei 1:n- und zwei n:1-Beziehungen | 354 |
Was ist wichtig? | 356 |
10: Datenbankanwendungen | 357 |
In diesem Kapitel | 358 |
Vorgehensweise | 358 |
Schrittfolge | 358 |
Versionen | 359 |
Entwicklung für andere | 360 |
Aufteilung in Frontend und Backend | 361 |
Das Problem | 361 |
Die Lösung | 362 |
Das verbleibende Problem | 365 |
Welche Version ist es denn? | 367 |
Frontend-gesteuertes Backend-Update | 369 |
Schutz der Datenbank | 371 |
Schutz vor unbefugten Personen | 371 |
Der Rundumschutz | 372 |
Schutz vor befugten Personen … | 373 |
… durch ein VBA-Kennwort | 373 |
… durch die Erzeugung einer .accde-Datei | 373 |
Datenbankaufteilung plus .accde-Datei | 374 |
Access ohne Access? | 374 |
Schritt 1: Runtime herunterladen und installieren | 375 |
Schritt 2: Verknüpfung zur Anwendung erstellen und anpassen | 375 |
Schritt 3: Anwendung starten | 376 |
Wie geht‘s weiter? | 377 |
Abfragen | 377 |
Berichte | 377 |
Makros | 378 |
Dateien lesen und schreiben | 380 |
Benutzerberechtigungen | 381 |
Mehrbenutzerzugriff | 381 |
DAO und ADO | 382 |
Was ist wichtig? | 383 |
A: Wichtige Standardaktionen durchführen | 385 |
So geht es mit Access 2016/2019 | 386 |
Datenbank erstellen und öffnen | 386 |
Tabellen und Beziehungen | 386 |
Abfragen | 387 |
Formulare | 388 |
Makros | 389 |
VBA | 389 |
So geht es mit Access 2013 | 389 |
Datenbank erstellen und öffnen | 389 |
Tabellen und Beziehungen | 390 |
Abfragen | 390 |
Formulare | 391 |
Makros | 392 |
VBA | 392 |
So geht es mit Access 2010 | 393 |
Datenbank erstellen und öffnen | 393 |
Tabellen und Beziehungen | 393 |
Abfragen | 394 |
Formulare | 395 |
Makros | 396 |
VBA | 396 |
So geht es mit Access 2007 | 396 |
Datenbank erstellen und öffnen | 396 |
Tabellen und Beziehungen | 397 |
Abfragen | 397 |
Formulare | 398 |
Makros | 399 |
VBA | 399 |
B: Namenskonventionen | 401 |
Namen für Access-Objekte | 401 |
Namen für Steuerelemente auf dem Formular | 401 |
Namen für Variablen im VBA-Code | 402 |
Namen für Tabellen und Tabellenspalten | 402 |
Stichwortverzeichnis | 403 |