A Note Regarding Supplemental Files
Vorwort
Zum Buchinhalt
Begleitdateien
Sicherheitseinstellungen
Ein gutgemeinter Ratschlag an Einsteiger
Zu den Autoren
Danksagung
Vorwort
1. Einführung
VBA-Programmierung unter Microsoft Access 2013
Visual Basic versus VBA
Objekt- und ereignisorientierte Programmierung
Objekte (Objects)
Eigenschaften (Properties)
Methoden (Methods)
Ereignisse (Events)
VBA- oder Makro-Programmierung?
Die VBA-Entwicklungsumgebung
Formularentwurf
Code-Fenster und Symbolleiste
Die wichtigsten Fenster
Die wichtigsten Menübefehle
Das Eigenschaftenfenster
Der Projekt-Explorer
Das Code-Fenster
Groß- und Kleinschreibung
Mehrfachanweisungen
Zeilenumbruch
Listing strukturieren
Verwendung von Ausrufezeichen, Punkt und eckigen Klammern
Kommentare
Farbige Hervorhebungen
Arbeiten mit der Hilfe
Sicherheitseinstellungen
Zur Geschichte der Access-Sicherheit
Eine nicht vertrauenswürdige Datenbank öffnen
Das Sicherheitscenter
Übersicht
Vertrauenswürdige Herausgeber
Vertrauenswürdige Speicherorte
Vertrauenswürdige Dokumente
Add-Ins
ActiveX-Einstellungen
Makroeinstellungen
Meldungsleiste
Datenschutzoptionen
Definition vertrauenswürdiger Speicherorte
Vorgehensweise
Weitere Optionen
Einführungsbeispiele
Erstellen der Testdatenbank
Konventionelle Programmierung
Erste Etappe: Visuelle Formulargestaltung
Zweite Etappe: Objekteigenschaften zuweisen
Dritte Etappe: Ereignisse besetzen
Vierte Etappe: Programmtest
Hinweise für den Einsteiger
Programmieren mit VBA
Erste Etappe: Visueller Entwurf der Benutzeroberfläche
Zweite Etappe: Zuweisen der Objekteigenschaften
Dritte Etappe: Besetzen der Ereignisse
Vierte Etappe: Programmtest
Bemerkungen zum Eigenschaftenfenster
Bemerkungen zur IntelliSense
Automatische Makrokonvertierung
Programmieren mit Datenmakro
Highlights und Features von Access 2013
Zur Geschichte der Vorgängerversionen
Microsoft Access 95
Microsoft Access 97
Microsoft Access 2000
Microsoft Access 2002
Microsoft Access 2003
Microsoft Access 2007
Microsoft Office Access 2010
Microsoft Access 2013 – viel Lärm um nichts?
Der inoffizielle Access 2013-Friedhof
Übersichten und Ergänzungen
Deutsche und englische Bezeichner
DoCmd-Objekt
Methoden des DoCmd-Objekts
Nicht unterstützte Aktionen
Bemerkungen
2. Programmieren mit VBA
Datentypen, Variablen und Konstanten
Übersicht
Bemerkungen
Variablendeklaration
Dim-Anweisung
Bezeichner
Typkennzeichen
DefType-Anweisungen
Bemerkungen
Option Explicit
Konstantendeklaration
Gültigkeitsbereiche
Private- und Public-Deklarationen
Static-Anweisung
Bemerkungen
Einzelheiten zu den Datentypen
Single- und Double-Datentypen
Integer-, Long- und Boolean-Datentypen
Date-Datentyp
Einfache Beispiel
Herausfiltern von Datum und Zeit
Weitere Funktionen
Kurzeingabe
Jahr 2000-Problematik
Currency-Datentyp
String-Datentyp
Strings fester Länge
Stringaddition
Zeilenumbruch
Variant-Datentyp
Spezielle Werte
Array- und IsArray-Funktionen
Konvertieren von Datentypen
Datenfelder (Arrays)
Statische Arrays
Option Base-Anweisung
Bereichsgrenzen mit To
Private- und Public-Deklarationen
Dynamische Arrays
ReDim-Anweisung
Preserve-Option
Abfrage der Dimensionen mit LBound und U Bound
Löschen von Arrays mit Erase
Benutzerdefinierte Datentypen
Type-Anweisung
With-Anweisung
Strings innerhalb Type
Enumerationen
Arrays in benutzerdefinierten Typen
Statische Datenfelder
Dynamische Datenfelder
Operatoren
Arithmetische Operatoren
Ergebnistyp bei Division
Zusammenhang zwischen Modulo- und Integer-Division
Logische Operatoren
Vergleichsoperatoren
Bemerkungen
Kontrollstrukturen
Bedingte Verzweigungen
Schleifenanweisungen
For Each...Next-Durchlaufschleife
GoTo und GoSub
Bemerkungen
Zeichenkettenfunktionen
Stringverarbeitung
Übersicht
Einige Beispiele
Bemerkungen
Format-Funktion
Standardformate
Vordefinierte Datum-Zeit-Formatierungen
Nutzerdefinierte Datum-/Zeit-Formate
Nutzerdefinierte Formate
FormatNumber-, FormatPercent- und FormatCurrency-Funktion
Vordefinierte Funktionen
Mathematische Funktionen
Winkelfunktionen
Zufallszahlen
Vorzeichen- und Rundungsfunktionen
Quadrieren
Logarithmus und Exponentialfunktionen
Finanzmathematische Funktionen
Datums-/Zeitfunktionen
Datum
Zeit
Gemischt
Bemerkungen
Benutzerdefinierte Funktionen/Prozeduren
Funktion
Prozedur
Parameterübergabe ByRef oder ByVal
Bemerkungen
Optionale Argumente
Benannte Argumente
Parameter-Arrays
Dynamische Arrays als Argumente
Rückgabe von Arrays
Private-, Public- und Static-Deklarationen
Übergabe benutzerdefinierter Datentypen
Static-Funktionen und Prozeduren
Übersichten und Ergänzungen
Datumskonstanten
Rückgabewerte der VarType-Funktion
Praxisbeispiele
In einem Textfeld suchen
Oberfläche
Quelltext
Test
Bemerkungen
Zeitangaben runden
Oberfläche
Quelltext
Test
Bemerkungen
Das Wochenende feststellen
Oberfläche
Quelltext
Test
Mit dynamischen Arrays rechnen
Oberfläche
Quelltext
Test
Bemerkungen
3. Makros – eine Einführung
Klassische Makros
Entwurfsoberfläche
Eigenständige Makros
Beispiel
Eingebettete Makros
Beispiel
Das AutoKeys-Makro
Beispiel
Beispiel
Das AutoExec-Makro
Beispiel
Bemerkungen
Potenziell gefährliche Makroaktionen
Datenmakros
Einsatzmöglichkeitem
Funktionsprinzip
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
Eingabe-Formular mit neuem Datensatz öffnen
Einen Datensatznavigator selbst bauen
Eigenständige Makros erstellen
Oberfläche
Bemerkungen
Ein ereignisgesteuertes Datenmakro erstellen
Datenbank
Erstellen des Datenmakros
Warum haben wir uns für das Ereignis Vor Änderung entschieden?
Arbeiten mit dem Makro-Editor
Wenn Aktualisiert
Datensatz nachschlagen
FestlegenLokaleVar
FestlegenFeld
Test des Datenmakros
Bemerkungen
Arbeiten mit einem benannten Datenmakro
Vorbereitungen
FürJedenDatensatz
DatensatzBearbeiten
Aufruf des benannten Datenmakros
AusführenDatenmakro
Test
Bemerkungen
Per VBA auf ein benanntes Datenmakro zugreifen
Oberfläche
Quelltext
Test
Bemerkungen
Änderungen von Tabelleninhalten protokollieren
Entwurf des Logbuchs
Erstellen des Datenmakros
Wenn
DatensatzErstellen
Test
4. Formulare und Steuerelemente
Allgemeines
Gruppen von Eigenschaften
Methoden
Gruppen von Ereignissen
Das Form-Objekt
Format-Eigenschaften
Width, InsideWidth, InsideHeight, WindowWidth, -Height, -Left, -Top
Section
DisplayWhen
Special Effect
ControlBox, BorderStyle, MinMaxButtons, CloseButton
Bemerkungen
Zu weiteren Format-Eigenschaften
Bemerkungen
Daten-Eigenschaften
Weitere Eigenschaften
Bemerkungen
Fenster- und Fokus-Ereignisse
Ereignisreihenfolge
Current
Event-Handler
Bemerkungen
Tastatur- und Maus-Ereignisse
KeyCode, KeyAscii und KeyPreview
Shift und Button
SendKeys
Page und Count
Daten- und Filter-Ereignisse
BeforeInsert, AfterInsert, BeforeUpdate, AfterUpdate
Dirty
Weitere Ereignisse
Error
Timer
Methoden
GoToPage und SetFocus
Recalc, Refresh, Repaint und Requery
Vergleich aller Aktualisierungsmethoden
Undo
Unterformulare
Steuerelemente (Controls)
Allgemeines
Allgemeine Eigenschaften auf einen Blick
Name (Name)
Application und Parent (Applikation und Hauptobjekt)
ForeColor, BackColor und BackStyle (Textfarbe, Hintergrundfarbe und Hintergrundart)
BorderStyle, BorderColor, BorderWidth und SpecialEffect (Rahmenart, Rahmenfarbe, Rahmenbreite,Spezialeffekt)
Font-Eigenschaften und TextAlign (Schriftart, -größe, Fett, Kursiv, Unterstrichen, Textausrichtung)
TextFormat (Textformat)
Height, Width, Left, Top (Höhe, Breite, Links, Oben)
LeftMargin, RightMargin, BottomMargin, TopMargin und LineSpacing (Linker Rand, Rechter Rand, Unterer Rand, Oberer Rand und Zeilenabstand)
Caption und Tag (Beschriftung und Marke)
Visible, Enabled, Locked (Sichtbar, Aktiviert, Gesperrt)
TabStop und TabIndex (InReihenfolge, Reihenfolgenposition)
ShortcutMenuBar, ControlTipText und StatusBarText (Kontextmenüleiste, SteuerelementTipText, Statusleistentext)
DisplayWhen, Section (Anzeigen, Bereich)
EventProcPrefix und InSelection (EreignisprozPräfix, InAuswahl)
ControlSource und ControlType und OldValue (Steuerelementinhalt und Steuerelementtyp)
Value und OldValue (Wert, AlterWert)
Allgemeine Ereignisse auf einen Blick
Methoden von Steuerelementen
Move
SetFocus
SizeToFit
Undo
Das Screen-Objekt
ActiveForm-/ActiveReport-Eigenschaft
ActiveControl-Eigenschaft
Unterschied zwischen ActiveForm/ActiveReport und Me-Eigenschaft
MousePointer-Eigenschaft
ActiveX-Steuerelemente
Vergleich mit den integrierten Steuerelementen
Gemeinsame Eigenschaften
Gemeinsame Ereignisse
Unterschiede
StatusBar als Beispiel
Auswahl
StatusBar-Eigenschaften
StatusBar-Methoden
StatusBar-Ereignisse
Panel-Objekt und Panels-Collection
Panels-Methoden
Praxisbeispiele
Das Textfeld programmieren
Oberfläche
Quelltext
Test
Bemerkungen
In ungebundene Textfelder ein- und ausgeben
Oberfläche
Quelltext
Test
Bemerkungen
Ein ungebundenes Kombinationsfeld füllen
Oberfläche
Quelltext
Test
Bemerkungen
Ein Unterformular programmieren
Entwurf des Unterformulars
Programmieren des Unterformulars
Test des Unterformulars
Entwurf des Hauptformulars
Programmieren des Hauptformulars
Test des Hauptformulars
Das Register-Steuerelement kennen lernen
Oberfläche
Quelltext
Test
Die Statusleiste programmieren
Oberfläche
Quelltext
Test
Bemerkungen
Verwenden von Bild-Ressourcen
Bild-Ressourcen zur Entwurfszeit einfügen
Ressourcen mit VBA verwalten
Programmieren des Navigationssteuerelements
Oberfläche entwerfen
Verwendung von VBA-Code
Test
5. Berichte
Allgemeines
Reportansichten
Die OpenReport-Methode
Parameterübergabe
Wichtige Berichtseigenschaften
Formateigenschaften
Dateneigenschaften
Grafikeigenschaften
ScaleMode
ScaleLeft und ScaleTop, ScaleWidth und ScaleHeight
Left, Top, Width und Height
Bemerkungen
CurrentX und CurrentY
Linien- und Stifteigenschaften
DrawWidth und DrawStyle
DrawMode
Schrifteigenschaften
Farb- und Mustereigenschaften
ForeColor und BackColor
FillColor und FillStyle
QBColor- und RGB-Funktion
Farbkonstanten
Sonstige Eigenschaften
Section
Berichtsereignisse
Allgemeine Ereignisse
Open, Close, Activate, Deactivate, Error
Page, NoData, Print, Format
Tastatur- und Mausereignisse
Berichtsmethoden
Grafikmethoden (Übersicht)
Scale
Line
PSet
Bemerkungen
Circle
Bemerkungen
TextWidth und TextHeight
Sonstige Methoden
Weitere Features des Report-Objekts
Rich-Text-Felder drucken
Verlauf eines Memofeldes drucken
Eine Liste der Anlagen drucken
Variante 1 (Gruppierung)
Variante 2 (VBA)
Berichte nachträglich filtern
Variante 1 (IDE)
Variante 2 (VBA)
Bemerkungen
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
Praxisbeispiele
Aufruf eines Berichts mit Datenfilter
Oberfläche des Formulars
Quelltext für Formular
Oberfläche des Berichts
Quelltext des Berichts
Test
Bemerkungen
Im Report gruppieren und rechnen
Oberfläche
Quelltext
Test
Bemerkungen
Erstellen und Drucken eines Diagramms
Entwurf Abfrage
Erstellen Bericht
Berichte in Formularen anzeigen
Bericht erstellen
Formular erstellen
Test
6. Programmieren mit Objekten
Objektvariablen
Objekttypen und Set-Anweisung
Object-Datentyp
Early Binding und Late Binding
Form- und Report-Objekt
Funktionen CreateForm/CreateReport
Me-Objekt
Control-Objekt
ControlType-Eigenschaft
Parent-Eigenschaft
Funktionen CreateControl/CreateReportControl
Formular- und Berichtsmodule
Instanzen von Formularen und Berichten
Standard- und Nicht-Standardinstanzen
New-Anweisung
Benutzerdefinierte Form-/Report-Objekte
Benutzerdefinierte Methoden
Benutzerdefinierte Eigenschaften
Property Let und Property Get
Eigenständige Klassenmodule
Erstellen eines Klassenmoduls
Eigenschaften und Methoden definieren
Erzeugen von Objekten (Instanzenbildung)
WithEvents-Deklaration
Bemerkungen zum Erzeugen von Objekten
Auflistungen
Forms/Reports
Count-Eigenschaft
For Each ... Next-Durchlauf
Bemerkungen
Controls
ControlType-Eigenschaft
Zugriffsmöglichkeiten in Auflistungen
Collection-Objekt
Deklaration
Add-Methode
Remove-Methode
Zugriff mittels Item-Methode
Dictionary-Objekt
Property und Properties
Module-Objekt und Modules-Auflistung
Eigenschaften und Methoden der Modules-Auflistung
Module-Eigenschaft
Reference-Objekt und References-Auflistung
Die Access-Objekthierarchie
Der Objektkatalog
Auswahl der Klassenbibliothek
Bedienhinweise
Das Application-Objekt allgemein
Bedeutung des Application-Objekts
Zugriff auf Access von anderen Anwendungen aus
Eigenschaften und Methoden des Application-Objekts
Application-Eigenschaft
CurrentObjectName-/CurrentObjectType-Eigenschaft
BrokenReference-Eigenschaft
SysCmd-Funktion
TempVars-Collection
SetOption-/GetOption-Methode
OpenCurrentDataBase-, CloseCurrentDataBase-Methode
ConvertAccessProject-Methode
Quit-Methode
Weitere wichtige Objekte
Bemerkungen
AccessObject
CurrentProject
AllForms-Auflistung
Path- und BaseConnectionString-Eigenschaft
ProjectType-Eigenschaft
CurrentData
AllTables-Auflistung
Übersichten
Konstanten der ControlType-Eigenschaft
Rückgabewerte der CurrentObjectType-Funktion
Praxisbeispiele
Ein Steuerelemente-Array automatisch erstellen
Oberfläche
Quellcode
Test
Bemerkungen
Mit Formular-Instanzen arbeiten
Oberfläche
Quelltext
Test
Mit einer eigenständigen Klasse experimentieren
Quelltext (Klassenmodul)
Berichtsoberfläche
Quelltext (Berichtsmodul)
Test
Bemerkungen
Auf Objekte in Auflistungen zugreifen
Oberfläche
Quelltext
Test 1 (For Each ... mit Collection)
Programmergänzung (For...Next mit Collection)
Programmergänzung (For Each ... bzw. For...Next mit Controls)
Test 2 (Controls-Auflistung)
Bemerkungen
Properties-Auflistungen untersuchen
Oberfläche
Quelltext
Test
Bemerkungen
7. DAO-Programmierung
Allgemeines
DBEngine
Workspace-Objekt
Database-Objekt
Recordset-Objekt
Verwendung der Datenbankobjekte
Grundlegende Arbeitstechniken
Arbeitsumgebung festlegen
Datenbank anlegen und öffnen
Zugriffsrechte
Tabellen/Indizes anlegen
Tabellen
Indizes
Tabellen einbinden
Tabellen verknüpfen (Relationen)
Abfragen erstellen/ausführen
Parameterabfragen
SQL-Pass-Through-Abfragen
Ausführen von Abfragen
Öffnen von Tabellen/Abfragen
Ableiten von Recordset-Objekten
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
Zugriff auf den aktuellen Record
Zugriff auf das Recordset des Formulars
Datensatzoperationen
Auf Anlage-Felder zugreifen
Auf mehrwertige Felder zugreifen
Verlaufsverfolgung eines Memo-Felds
Weitere Funktionen
Eigenschaften (Properties)
Transaktionen
Praxisbeispiele
Eine Tabelle anlegen
Oberfläche
Quelltext
Test
Navigieren mit DAO
Oberfläche
Quelltext
Test
Bemerkungen
Den Datensatzzeiger bewegen
Oberfläche
Quelltext
Test
Bemerkungen
In Recordsets suchen
Variante 1 (Recordset als Table-Objekt öffnen)
Programmierung Variante 1
Variante 2 (Recordset als Dynaset öffnen)
Programmierung Variante 2
Test
Eine Datenbank analysieren
Oberfläche
Quelltext 1 (Tabellendefinitionen)
Quelltext 2 (Abfragen)
Test
Bemerkungen
Komplexbeispiel: Telefonverzeichnis
Eingabemaske
Anforderungen
Programmierung
Variablen (Modulebene)
Startaktivitäten
Allgemeine Prozeduren/Funktionen
Neuer Datensatz
Abbrechen der Eingabe
Datensatz übernehmen
Editieren eines Datensatzes
Auslesen von Tabellenfeldern
Löschen von Records
Die Bewegungstasten
Unterstützung von Funktionstasten
Der Timer
Suchen
Test und Bemerkungen
8. ADO-Programmierung
Ein erster Blick auf ADO
Kleines Einführungsbeispiel
Referenzieren der ADO-Bibliothek
Recordset und Verbindungszeichenfolge
Bemerkungen
Zur Geschichte von ADO
Hinweise zu den ADO-Bibliotheken
ADODB-Library
ADOR-Library
ADOX-Library
RDS-Libraries
ADO und OLE DB
ADO-Objektmodell
Connection-Objekt
Command-Objekt
Recordset-Objekt
Properties-Auflistung
Errors-Auflistung
Fields-Auflistung
Parameters-Auflistung
ADO-Grundoperationen
Beziehungen zwischen den Objekten
Die Verbindung zur Datenquelle
Open-Methode und ConnectionString-Eigenschaft
Weitere Argumente der Open-Methode
CursorLocation-Eigenschaft
Bemerkungen
Verbindung mit SQL-Server
Asynchroner Verbindungsaufbau
Transaktionsmethoden
Weitere Eigenschaften einer Verbindung
Beenden einer Verbindung
Aktionsabfragen mit dem Command-Objekt
ActiveConnection-Eigenschaft
CommandText- und CommandType-Eigenschaft
Execute-Methode
RecordsAffected, Parameters und Options
Kommandos mutieren zu Methoden
Recordsets mit Daten füllen
Recordset öffnen mit Connection.Execute
Recordset öffnen mit Command.Execute
Recordset öffnen mit Recordset.Open
Dem Recordset-Objekt Eigenschaften zuweisen
Mit welcher Methode sollte man ein Recordset öffnen?
Weitere Operationen mit Recordsets
Welche Recordset-Features werden unterstützt?
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
Count-Eigenschaft
Item-Methode
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
Oberfläche
Quelltext
Test
Bemerkungen
Ein ADO-Datenklassenmodul verwenden
Quelltext für Klassenmodul CData
Oberfläche
Quelltext für Formular
Test
Ein intelligentes ADO-Frontend entwickeln
Datenbasis
Eingabemaske
Programmplanung
Quelltext
Test
9. Fortgeschrittene Datenbankprogrammierung
Datenbankverwaltung mit ADOX
Datenbanken erstellen
Tabellendefinition
Indexdefinition
Erstellen von Prozeduren und Sichten
Tabellen verknüpfen (Relationen)
Erstellen spezieller Feldtypen
Automatische Zufallswerte (GUID)
Test
Memofeld mit Archiv-Funktion (Nur anfügen)
Erzeugen per Access-Editor
Erzeugen per VBA (DAO)
Bemerkung
Anlage-Feld
Erzeugen per VBA (DAO)
Rich-Text-Feld
Erzeugen per VBA (DAO)
Multivalue-Feld (MVF)
Erzeugen per Access-Editor
Erzeugen per Code (DAO)
Bemerkungen
Berechnete Spalten
Erzeugen per Access-Editor
Erzeugen per Code (DAO)
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
Oberfläche
1. Nutzer und Gruppen erstellen
2. Nutzer den Gruppen zuordnen
3. Datenbank erstellen
4. Rechte in der Datenbank vergeben
Erstellen neuer Benutzer und Gruppen (ADOX)
Vergabe von Rechten (ADOX)
Verschlüsseln von Datenbanken
Verschlüsseln mit Hilfe der DAO
Verschlüsseln mit Hilfe der ADO/JRO
Multiuserzugriff
Verwenden der DAO
Optimistic Locking
Pessimistic Locking
Sperren der gesamten Datenbank
Sperren einzelner Tabellen
Verwenden der ADO
ODBC-Verbindungen
Ein Blick auf den ODBC-Datenquellen-Administrator
ODBC-Connection zu einem MS SQL Server aufbauen
Erstellen einer ODBC-Verbindung (DAO)
Öffnen einer ODBC-Verbindung (DAO)
Öffnen einer ODBC-Verbindung (ADO)
Konfigurieren von ODBC-Verbindungen
Zugriff auf Fremdformate
dBASE III/IV- und FoxPro-Datenbanken
dBASE-Zugriff aus Access 2013
dBASE-Zugriff aus Access 2010/2007/...
Textdateien (TXT/ASC/CSV)
Konvertierungseinstellungen in der Registry
Verwendung einer Schema.ini für den Import/Export
Einbinden externer Tabellen
Verwenden der DAO
Erstellen einer Verbindung
Einbinden einer Excel-Tabelle
Reaktivieren einer Verbindung
Löschen einer Verbindung
Verwenden der ADOX
Erstellen einer Verbindung
Aktualisieren einer Verbindung
Löschen einer Verbindung
Exportieren von Daten
TransferDatabase-Methode
Exportieren mit SQL-Anweisungen
Replizieren von Datenbanken
Optimierung
Indizes
Abfrage-Optimierung
Weitere Möglichkeiten
ADO/DAO/ODBC – Was ist schneller?
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
Datenbankpasswort (DAO)
Datenbankpasswort (JRO)
Nutzerpasswort
Abfragen über mehrere Datenbanken
Datenbanken reparieren/komprimieren
DAO
ADO
10. Microsoft SQL Server
Ein erster Schock ...
Allgemeines
SQL Server LocalDB
Umstellung
Download und Installation
SQL Server Express
Unterschiede SQL Server/SQL Server Express/LocalDB/Jet-Engine
Vergleich Express Edition und Standard SQL Server
Unterschiede Express und LocalDB
Vergleich zur Jet-Engine
Client- versus Fileserver-Programmierung
Installation SQL Server Express
Netzwerkzugriff für den SQL Server Express aktivieren
SQL Server Browser aktivieren
TCP/IP-Protokoll aktivieren
Erlaubnis für Remotezugriff überprüfen
Gemischte Anmeldung aktivieren
Die wichtigsten Tools von SQL Server
SQL Server Management Studio
SQLCMD
Query Analyzer (SQL Server Management Studio)
SQL Server Profiler
SQL Server Konfigurationsmanager
Vordefinierte Datenbanken
Einschränkungen
Weitere SQL Server-Funktionen im Kurzüberblick
SQL Server-Agent
Volltextsuche
Reporting Services
Integration Services
Analysis Services
Datenbanken verwalten
Ich habe Altprojekte – wo sind die Bibliotheken?
Verwendung
Der Newcomer – SMO
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
Praktisches Arbeiten mit dem SQL Server
Erstellen neuer SQL Server-Datenbanken
Erzeugen und Verwalten von Tabellen
Tabellen erzeugen/verwalten mit T-SQL
Temporäre Tabellen
Erzeugen und Verwenden von Sichten (Views)
Verwenden von TSQL
ORDER BY in Views verwenden
Verwenden von Gespeicherten Prozeduren
Verwenden von Parametern
Recordsets als Rückgabewerte
Output-Parameter
Verwenden des Rückgabewertes
Programmieren von Triggern
Trigger-Arten
Gezielte Datensatzauswertung
Auswerten von Spaltenänderungen
Erzeugen von Datenbankdiagrammen
Volltextabfragen
Allgemeine Voraussetzungen
Erstellen mit T-SQL
Abfragen von Daten
Ergänzungen/Hinweise
Datenbanken sichern und wiederherstellen
Microsoft SQL Server Management Studio
T-SQL
Backup-Alternativen
Fehlerbehandlung
Das Fehlermodell des SQL Servers
Verwenden von @@ERROR
Verwenden von RAISEERROR
Fehlerbehandlung mit TRY...CATCH
Fehlerbehandlung mit den ADO
Datensicherheit auf dem Microsoft SQL Server
Überblick Sicherheitsmodell
Rollen (Gruppen)
Rechte
Verwalten mit dem SQL Server Management Studio
Erstellen einer neuen Anmeldung
Erstellen von Rollen
Verwalten von Rechten
Verwalten mit T-SQL
Überblick
Erstellen eines neuen Users
Löschen eines Benutzers
Erstellen einer neuen Rolle
Hinzufügen von Usern zu einer Rolle
Verwaltung von Rechten
Tipps & Tricks
Alle registrierten Microsoft SQL Server ermitteln
Alle Datenbanken ermitteln
Alle Tabellen ermitteln
Eine Tabelle löschen
Anzahl der Datensätze beschränken
Variante 1 (TOP)
Variante 2 (SET ROWCOUNT)
Variante 3 (ROW_NUMBER)
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
Eine Datenbank umbenennen
Eine Datenbank zwischen Servern verschieben
Die Datenbankstruktur kopieren
Nach dem Löschen IDENTITY auf 0 setzen
Eine Tabellenspalte umbenennen
Unterschiede zwischen temporären Tabellen erkennen
Daten aus verschiedenen Datenbanken anzeigen
Einen SMO-Mapper realisieren
Quelltext
Kompilieren
Übersichten
Datentypen
Unterschiede Access- und SQL Server-Datentypen
11. Access Web Apps
Einführung
Worum handelt es sich bei den Access Web Apps?
Welche Funktionen stehen mir im Web zur Verfügung?
Vor- und Nachteile
Die Vorteile
Die Nachteile
Das Anwendungsszenario
Erste Schritte
Der Server in der Cloud – Office 365
Access mit Office 365 verbinden
Eine erste kleine Web App erstellen
Tabellen und Abfragen
Importieren von Altdaten
Einbinden von SharePoint-Listen
Erstellen von Tabellen
Daten- bzw. Feldtypen
Tabellendaten in Access editieren
Tabellenlayout nachträglich editieren
Gültigkeitsprüfung auf Tabellenebene
Indizes und Primärschlüssel
Nachschlag-Felder (Lookup-Felder)
Die Werte werden aus einer zweiten Tabelle abgerufen
Die Werte stammen aus einer von Ihnen zu editierenden Liste
Abfragen erstellen
Die Oberfläche – Ansichten und Steuerelemente
Grundsätzliches
Konfigurieren der Tabellenauswahl
Beschriftung
Symbol
Ein-/Ausblenden
Reihenfolge verändern
Konfigurieren der Ansichtsauswahl
Duplizieren von Ansichten
Erweitern der Ansichtsauswahl
Ansicht Detailinformation
Die Datenliste
Das Filterfeld
Die Aktionsleiste
Ansicht Datenblatt
Ansicht Zusammenfassung
Leere Ansicht
Übersicht Steuerelemente
Textfeld
Schaltfläche
Webbrowsersteuerelement
Bild
AutoVervollständigen
Linksteuerelement
Unteransicht
Verwandte Elemente
Freie Ansichten
Makros in Web Apps
Datenmakros
Datenmakros debuggen
UI-Makros
Ereignisse
Das Makro ÖffnenPopup
Praktische Aufgabenstellungen
Berichte und Auswertungen erstellen
Anpassen der Verbindungseinstellungen
Verbindungsinformationen bestimmen
Ein App-Paket in Access erzeugen bzw. ein Backup erstellen
Das App-Paket dem SharePoint-Katalog hinzufügen
SharePoint-Katalog erstellen
App-Paket in den Katalog einfügen
Eine neue App per SharePoint-Katalog erstellen
App-Paket ohne Katalog installieren
Bestehende Web Apps in Access öffnen
Eine neue Access App per SharePoint erzeugen
Die Web App freigeben
Praxisbeispiele
Eine Home-Seite gestalten
Tabellenentwurf
Bild und Daten speichern
Anpassen der Tabellenliste
Hinzufügen einer neuen Ansicht
Test
Ein Startpopup anzeigen
Entwurf Ansicht
Startmakro zuweisen
Test
Eine Suchansicht programmieren
Die Abfrage
Ansicht für die Abfrage erstellen
Die Suchansicht entwerfen
Ereignis
Test
Die ODBC-Verbindung der Client-Datenbank anpassen
Oberfläche
Quellcode
Test
Tipps & Tricks
Eine Verknüpfung zur Web App erstellen
Horizontale Linien anzeigen
Ausgeblendete Ansichten anzeigen
Ansichtsbeschriftung dynamisch ändern
Fehler beim SQL Server Management Studio vermeiden
Fazit
12. Access und SharePoint
Kurzeinführung SharePoint
Versionsübersicht
Ein Blick auf die Kosten
Alternative Webhosting/Office 365
Soft- und Hardwareanforderungen
SharePoint Foundation
Download/Installation
Produktübersicht
SharePoint Server 2013 Enterprise Edition
Access Services – was ist das?
SharePoint-Listen
SharePoint-Datentypen
Formen der Zusammenarbeit zwischen SharePoint und Access
Vorteile von SharePoint gegenüber Access
Import und Einbindung von SharePoint-Listen
Zu erwartende Probleme beim Import
Spaltenanzahl
Unterordner
Berechnete Spalten
Beziehungen
Nachschlagewerte
Listen vom SharePoint-Server einbinden/importieren
Neue Access-Datenbank mit Verknüpfung
Probleme mit berechneten Feldern
Neu Verknüpfen nach Layout-Änderung
Was passiert eigentlich mit gelöschten Einträgen?
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
Verhindern, dass die Datenbank zurückgespeichert wird
Tipps & Tricks
Eine SharePoint-Liste erstellen
Eine SharePoint-Ansicht erstellen
Tabellen per Browser importieren
Anonymen Zugriff auf die Website ermöglichen
Fazit
13. Access und Azure SQL
Einführung in SQL Azure-Datenbanken
Das Grundprinzip der »Webdatenbank«
Der Azure-Server
Einschränkungen
Features
Die Frage nach den Kosten
Einrichten des Servers
Die zentrale Organisationsstruktur
Einen Server und eine Datenbank erstellen
IP-Filter konfigurieren
Bemerkungen zum neu erstellten Account
Die drei konzeptionellen Zugriffsmodelle
Code-Far-Modell
Code-Near-Modell
Misch-Variante
Administrieren von Azure SQL-Datenbanken
Zugriff mit dem SQL Server Management Studio
Weitere Accounts erstellen
Neuen Login-Account erzeugen
Neuen Datenbank-Nutzer erzeugen
Zuweisen von Rechten
Lokale Datenbanken mit dem Management Studio migrieren
Migrieren von Access-Datenbanken
Praktische Umsetzung in Access-Anwendungen
Tabellen einbinden
DAO- oder ADO-Zugriff – keine Frage!
Unsere AzureSQL-Library
Verbindung mit ADO aufbauen
Datenbank erstellen
Ist die Datenbank schon vorhanden?
Den aktuellen »Füllstand« abrufen
Was passiert, wenn die Datenbank zu klein wird?
Eine Datenbankkopie erstellen
Tabelle(n) erstellen
Daten exportieren
Daten einbinden
Daten lesen
Daten schreiben
Abschließende Hinweise
Synchronisieren
Performance-Tipps
Die Firewall per T-SQL konfigurieren
Arbeiten mit sqlcmd
Fazit
14. Zugriff auf SQLite-Datenbanken
Was ist eigentlich SQLite?
Vorteile
Nachteile
Vorbereitungen
Download/Installation des ODBC-Treibers
Download/Installation SQLite for Excel
Datenbank-Tools
Database .NET
SQLite Administrator
Praktische Aufgabenstellungen
Einbinden von SQLite-Tabellen per Assistent
Einbinden von SQLite-Tabellen per VBA-Code
Datenbank per Code erstellen
Tabellen erzeugen
Bitte umlernen – Datentypen einmal anders
Einschränkungen definieren
Datenbankzugriff per ADO realisieren
Die Bedeutung von Transaktionen bei SQLite
SOUNDEX verwenden
Volltextabfragen realisieren
Praxisbeispiele
Verwenden der Volltextsuche
Vorbereitung
Oberfläche
Quelltext
Test
Bemerkung
Implementieren der Klasse SQLiteDatabase
Funktionsumfang
Quelltext
Verwenden der Klasse SQLiteDatabase
Oberfläche
Quelltext
Tipps & Tricks
Für Liebhaber der Kommandozeile – Sqlite3.exe
Eine SQLite-Datenbank reparieren
Eine Beispieldatenbank herunterladen
Testen ob Tabelle vorhanden ist
Die Datenbank defragmentieren
Mehrere Datenbanken verknüpfen
Eine Abfrage/Tabelle kopieren
Ein Backup implementieren
Tabellen zwischen Datenbanken kopieren
Ersatz für TOP
Metadaten auswerten
Timestamp als Defaultwert verwenden
Export in XML-Format
Konvertieren von SQL Server- in SQLite-Datenbanken
Fazit
15. Anwendungsdesign
Access-Oberflächengestaltung
Beschriften der Kopfzeile
Der einfache Weg (Access-IDE)
Lösung per VBA
Informationen in der Statuszeile anzeigen
Fortschrittsanzeige mit dem Progressbar realisieren
Navigationsbereich konfigurieren
Navigationsbereich ein-/ausblenden
Navigationsbereich minimieren/wiederherstellen
Navigationsbereich sperren
Eigene Navigationskategorien erstellen
Navigationskategorie festlegen
Navigationskategorie per VBA festlegen
Navigationskategorien ein-/ausblenden
Ansicht auswählen
Systemtabellen etc. anzeigen
Suchleiste verwenden
Access-Hauptfenster komplett ausblenden
Vorgehensweise
Quelltext Startformular
Test
Bemerkungen
Steuern der Anwendung
Autostart mit AutoExec-Makro
Automatische Ausführung verhindern
Umgehen mit der Shift-Taste verhindern
Formulare automatisch starten
Warten auf das Ende
Access per VBA beenden
Den Runtime-Modus
Befehlszeilen-Optionen verwenden
Entwickeln von Assistenten und Add-Ins
Assistenten-Typen
Einbinden der Assistenten in die Access-IDE
Die Tabelle USysRegInfo
Menü-Assistent (Beispiel)
Einträge in der Tabelle USysRegInfo
Die Startprozedur
Interaktion Add-In/aktuelle Datenbank
Objekt-Assistent (Beispiel)
Optionen in der Tabelle USysRegInfo
Die Startprozedur
Das Assistenten-Formular
Das Erstellen neuer Formulare/Objekte
Aufruf
Steuerelemente-Assistent (Beispiel)
Optionen in der Tabelle USysRegInfo
Das Add-In-Formular
Interaktion mit dem zu konfigurierenden Control
Eigenschaften-Assistent
Entwickeln und Einbinden von Managed Add-Ins
Interaktion Anwendung/Add-In
Entwurf des Add-Ins
Oberfläche
Der Quellcode des Add-Ins
Formularentwurf für das Add-In
Kompilieren und Einbinden
Testen
Praxisbeispiele
Mehr über die aktuelle Access-Version erfahren
Oberfläche
Quelltext
Test
Access neu starten/Datenbank neu laden
Quelltext
Test
Mit Reference-Objekten arbeiten
Oberfläche
Quelltext (Eigenständiges Klassenmodul CRefEvents)
Quelltext (Formular-Modul)
Test
Bemerkungen
Den aktuellen Datenbanknutzer ermitteln
Benutzerdefinierte Eigenschaften in Access einsetzen
Quelltext
Test
Bemerkung
Überlappende Fenster einstellen
Lösung Visual Basic
Access-Optionen abrufen/setzen
Quelltext
Test
16. Menüband und Backstage-Ansicht
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
Erstellen der Registerkarte
Erstellen der Gruppe
Erstellen von Schaltflächen
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
Zuweisen von Bildern zur Laufzeit
Screentips etc.
Reaktion auf das Betätigen der Schaltfläche
separator-Steuerelement
toggleButton-Steuerelement
buttonGroup-Steuerelement
checkBox-Steuerelement
editBox-Steuerelement
comboBox-Steuerelement
Manuelles Füllen
Füllen per VBA-Code
dropDownElement-Steuerelement
gallery-Steuerelement
menu-Steuerelement
Dynamische Einträge
splitButton-Steuerelement
dialogBoxLauncher
Die Backstage-Ansicht anpassen
Die Standardansicht verändern
Die drei möglichen Layouts für Registerkarten
Einspaltiges Layout
Zweispaltiges Layout
Layout mit Unternavigation
Die neuen Möglichkeiten von Gruppen
Farbliche Gestaltung
Anordnung der Inhalte
Anordnen von Steuerelementen mit LayoutContainern
Das Verhalten der Schaltflächen beeinflussen
Mit VBA/Makros auf Ereignisse reagieren
onShow
onHide
Tipps & Tricks
Die guten alten Access 2003-Menüs anzeigen
Das Office-Menü für Access 2007 anpassen
Die Access 2007-Optionen im Office-Menü ausblenden
XML-Daten komfortabel editieren
Arbeiten mit dem RibbonCreator
Übersichten
Callback-Methoden für das Menüband
17. Programmschnittstellen
Zwischenablage
Kopieren/Einfügen mittels DoCmd-Objekt
Ein Clipboard-Objekt programmieren
Quelltext (Klassendefinition)
Quelltext (Beispielanwendung)
API- und DLL-Einbindung
Allgemeines
Und was ist mit der 64-Bit Access Version?
Woher bekomme ich die 64 Bit-Deklarationen?
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
Bemerkungen
OLE/ActiveX
Überblick
OLE
Verknüpfen oder Einbetten?
Übersicht zum Objektfeld-Steuerelement
Klasse (Class)
Anzeigeart (DisplayType)
Größenanpassung (SizeMode)
Zugelassene OLE-Objektart (OLETypeAllowed)
Verb
Herkunftselement (SourceItem)
Herkunftsdokument (SourceDoc)
Action-Eigenschaft
Programmieren mit dem Objektfeld
Past Special (Entwicklungszeit)
Paste Special (Laufzeit)
Paste
SourceDoc
ActiveX-Code-Komponenten (OLE-Automation)
Objekt-Katalog
Programmieren mit ActiveX-Code-Komponenten
New
GetObject und CreateObject
Object-Eigenschaft (Objektfeld-Control)
DDE
Funktionsprinzip
Verwenden von Steuerelementen
Wichtiger Nachtrag für Access-Anwendungen ab Version 2007
VBA-Programmierung
Scanner-Unterstützung per WIA
Was kann WIA?
Installation/Vorbereitung
Windows Vista/Windows 7/Windows 8
Einstieg mit kleiner Beispielanwendung
Oberfläche
Quellcode
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
Zugriff auf Excel-Arbeitsmappen
Zugriffsmöglichkeiten
TransferSpreadsheet
Import/Export per DAO
Der Connnectionstring
Neue Mappen erstellen
Daten in ein Tabellenblatt eintragen
Update
Daten auslesen
Zugriff auf Tabellenbereiche
OLE-Automation
Praxisbeispiele
Eine externe Anwendung starten
Oberfläche
Quelltext
Test
Informationen über das aktuelle System ermitteln
Oberfläche
API-Programmierung
Die Funktions-Aufrufe
Test
Das aktuelle Betriebssystem ermitteln
Oberfläche
Quelltext
Test
Bemerkung
Den Windows-Lizenznehmer ermitteln
Oberfläche
Quelltext
Test
Zeitmessungen in Access durchführen
Quelltext (Klassendefinition)
Oberfläche (Beispielprogramm)
Quelltext (Beispielprogramm)
Test
Microsoft Word über ActiveX steuern
Oberfläche
Quelltext
Test
Microsoft Excel über ActiveX steuern
Oberfläche
Quelltext
Von Visual Basic 2012 per OLE-Automation auf Access zugreifen
Automation versus ADO.NET
Vorbereitungen
Quelltext
Test
18. Techniken der Programmentwicklung
Fehlersuche
Direktfenster
Verwendung des Debug-Objekts
Debug.Print
Debug.Assert
Arbeiten mit dem Lokal-Fenster
Überwachungs-Fenster
Noch mehr Debugging
Schrittweise Programmabarbeitung
Haltepunkte setzen
Werte anzeigen
Aufrufeliste auswerten
Weitere Hinweise
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
Quelltext (Library)
Quelltext (Testanwendung)
Hinweise
Programmieren von ActiveX-DLLs mit VB 2012
Die Wahl der Entwicklungsumgebung
Vorbereitungen
Programmierung
Klassenmodul CKreis.vb
CFormulare.vb
Form1.vb
Einbinden in Access
Oberfläche
Quelltext
Test
Variante 2
Registrieren der Assembly
DLL-Programmierung mit C++ 2012
Entwicklungsumgebung
Projekt und Dateien erstellen
DEF-Datei
MyDll.cpp
DllMain.cpp – Die Ein- und Austrittsprozedur
Aufrufkonventionen
Funktionsparameter und Variablentypen
Beispiel einer Sortierroutine
Der C-Quelltext
Die DEF-Datei
targetver.h
Aufrufkonvention festlegen
Erstellen der DLL
Access-Einbindung
Tipps und Tricks
Namensgebung
Versionskontrolle
EntwickeIn 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
Die Lösung Ihrer Probleme: Inno Setup
Unser Setup-Skript
Die Access Runtime
Vorbereitungen in der Access-Datenbank
Die Installationsdateien
Erste Schritte mit dem Inno Script-Studio
Code
Dateien und Pfade
Installation der Runtime
Registry-Einträge
Startmenü
Minimale Windows-Version festlegen
Test
Praxisbeispiele
Arbeiten mit dem Debugger
Grundlagen
Oberfläche
Quelltext
Test
Schrittweises Abarbeiten
Überwachungsausdruck hinzufügen
Bemerkungen
OpenOffice.org Writer per OLE steuern
Quelltext (Klasse OOWriter)
Quelltext (Testprogramm)
Test
Bemerkung
19. Dateien und Verzeichnisse
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
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
Bemerkungen
Textdateien
Klassischer Zugriff auf Textdateien
Öffnen
Zeilenweises Einlesen
Bestimmte Anzahl von Zeichen lesen
Variablen einlesen
Schreiben
Bemerkungen
Zugriff auf Textdateien mit den File System Objects
Typisierte Dateien
Öffnen
Lesen/Schreiben
Weitere Dateien
Binärdateien
INI-Dateien
Lesen und Schreiben
WriteProfileString und GetProfileString
Weitere API-Funktionen
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 15 Library)
Variante 2 (Windows-API)
Quelltext (Klassendefinition)
Beispielprogramm
Test
Verzeichnisdialog (Windows-API)
Übersichten
Dateifunktionen in Access
FSO-Eigenschaften und -Methoden
Praxisbeispiele
Auf eine Textdatei zugreifen
Oberfläche
Programmierung
Test
Bemerkungen
Dateien suchen
Oberfläche
Quelltext
Die Shellfunktionen verwenden
Oberfläche
Quelltext (Klassenmodul)
Test
Bemerkungen
Einen Verzeichnisbaum in eine TreeView einlesen
20. XML in Theorie und Praxis
XML – etwas Theorie
Allgemeines
Der XML-Grundaufbau
Wohlgeformte Dokumente
Processing Instructions (PI)
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
Erzeugen von Instanzen
Laden von Dokumenten
XML-Fehlerprüfung/-Analyse
Das parseError-Objekt
Erzeugen von XML-Dokumenten
Auslesen von XML-Dateien
Bestimmen des Wurzel(Root)-Elementes
Anzeige aller Elemente einer Baum-Ebene
Direktzugriff auf einzelne Elemente
Einfügen von Informationen
Attribute oder Element
Erstellen von Attributen
Auslesen von Attributen
Suchen in den Baumzweigen
Das Interpretieren von Leerzeichen
XML-Integration in Access
Importieren
Erster Versuch
Zweiter Versuch
Exportieren
XML-Transformation mit XSLT
Was ist XSL
XSL in Microsoft Access
Application-Objekt (ImportXML/ExportXML)
ImportXML-Methode
ExportXML-Methode
ADO-Recordset
Sichern
Laden
Stream-Objekt
Vor- und Nachteile von XML
Grundsätzlicher Vergleich
Zeitvergleich ADO/XML
Anzeige aller Datensätze
Filtern von Datensätzen
Suchen von Datensätzen
Praxisbeispiele
Speichern im UTF-8-/UTF-16-Format
Oberfläche
Quelltext
Test
Laden UTF-8-/UTF-16-Format aus einem ADO-Stream
Oberfläche
Quelltext
XML-Daten asynchron verarbeiten
Oberfläche
Quelltext
Test
Bemerkung
XML-Daten in einer TreeView darstellen
Oberfläche
Programmierung
Test
Navigieren zwischen einzelnen XML-Baumknoten
Oberfläche
Quelltext
Test
ADO-XML-Streams nachbearbeiten
Oberfläche
Quelltext
Test
Bemerkungen
Strukturierte Textdaten in XML-Dokumente umwandeln
Quelltext
Test
21. SQL in Theorie und Praxis
Einführung
SQL-Dialekte
Kategorien von SQL-Anweisungen
Datendefinition
Datenabfrage
Datenmanipulation
Zugriffskontrolle
Etwas (Datenbank-)Theorie
Allgemeines/Begriffe
Tabelle
Index
Schlüssel
Ansichten (Views)
Stored Procedure/Gespeicherte Prozedur
Trigger
NULL-Value
Cursor und Recordset
Normalisieren von Tabellen
Ausgangstabelle
Erste Normalform
Zweite Normalform
Dritte Normalform
Normalisierung nach dem Prinzip »Faule Sekretärin«
Beziehungen zwischen den Tabellen
1:1-Beziehung
1:n-Beziehung
m:n-Beziehung
Verknüpfen von Tabellen
Vereinigung
Differenz
Selektion
Join
Equi-Join (Inner-Join)
Outer-Join (Left-/Right-Join)
Auto-Join
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
Suche in einem Bereich
Suche nach Zeichenfolgen
Datumsvergleich
Probleme mit Datums-/Uhrzeitvergleichen
IN-Klausel
Auf der Suche nach dem Nichts
Beschränken der Ergebnismenge
Eindeutige Records/doppelte Datensätze
Tabellen verknüpfen
Verknüpfen mit LEFT-JOIN/RIGHT-JOIN
Verknüpfen mit INNER JOIN
Auto-Join
Tabellen vereinigen
Datensätze sortieren
Datensätze gruppieren
Die HAVING-Klausel
Unterabfragen
Das Ergebnis einer Query ist Bedingung (WHERE) einer anderen Query
Liefert die Subquery eine Menge von Werten, müssen Sie mit ANY/ALL einen dieser Werte auswählen.
»=ANY« kann durch »IN« ersetzt werden (»< >ALL« entspricht »NOT IN«)
Eine WHERE-Klausel kann mehrere Subqueries enthalten
Synchronisieren von Unterabfragen mit der Hauptabfrage
Anlage-Felder mit SQL verwalten
Die Liste der Anhänge abfragen
Die Anzahl der Anlagen pro Datensatz bestimmen
Einzelne Anlagen gezielt löschen
History-Felder mit SQL abfragen
Den Spaltenverlauf abfragen
Die Anzahl der History-Einträge bestimmen
Mehrwertige Felder mit SQL abfragen
Daten manipulieren
Einfügen einzelner Datensätze
Einfügen von Abfragedaten
Exportieren/Importieren von Abfragedaten
Speichern in externen Tabellen
Aktualisieren/Ändern
Löschen
Bemerkungen
Erweiterte SQL-Funktionen
Berechnete/Formatierte Spalten
Format-Funktion
Berechnungen in Spalten
Neue Spalten erzeugen
Weitere String-Formatierungsfunktionen
Berechnungsfunktionen
NULL-Werte
Datum und Zeit in SQL-Abfragen
Datumsberechnungen
DateValue
Datentypumwandlungen
Kreuztabellenabfragen
Steuerelemente-Eigenschaften in Abfragen verwenden
Globale Variablen in Abfragen verwenden
Datenbankverwaltung mit SQL (DDL)
Datenbanken
Tabellen
Indizes
CONSTRAINT-Klausel
Beziehungen festlegen
Create Index
Tabellen/Indizes löschen oder verändern
Sichten (Views)
Nutzer- und Rechteverwaltung
Datenbankpasswort ändern
Transaktionen
SQL in der Access-Praxis
SQL in Abfragen
SQL im Basic-Code
Einbau von Variablen
Execute-Methode
SQL beim Oberflächenentwurf
VBA-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
Oberfläche
Quelltext
Datum und Zeit in SQL einbauen
Oberfläche
Quelltext
Test
22. Access im Internet/Intranet
Kleine Einführung
Internet/Intranet
Internet
Intranet
TCP/IP und UDP
TCP
UDP
IP
URL, HTTP und HTML
URL
HTTP
HTML
Hyperlinks
Hyperlinks in Tabellen
Hyperlinks verwenden
Steuerelemente als Hyperlink-Schaltflächen
FollowHyperlink-Methode
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
Was können nun diese Controls?
Was können diese Controls nicht?
Das WebBrowserControl-Objekt
Alternative: Einbinden des ActiveX-Steuerelements in Access
Einen Web-Browser programmieren
Test
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
A. Glossar
B. Wichtige Dateierweiterungen
C. ANSI-Tabelle
D. Wichtige Tastaturcodes
Tastencodes für KeyDown, KeyUp
Tastencodes der SendKeys-Funktion
Zusätzliche Steuercodes
Stichwortverzeichnis
Supplemental files and examples for this book can be found at http://examples.oreilly.com/9783866454712/. Please use a standard desktop web browser to access these files, as they may not be accessible from all ereader devices.
All code files or examples referenced in the book will be available online. For physical books that ship with an accompanying disc, whenever possible, we’ve posted all CD/DVD content. Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.
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, Makros und XML ein mächtiges Werkzeug, um leistungsfähige Datenbank-Applikationen mit besserer Performance und auf beachtlich höherem Niveau zu erstellen.