Einbinden externer Tabellen
Access-Datenbanken bieten mit der Einbindung von externen Datenquellen ein besonderes Feature, um
dem Desktop-Programmierer die Arbeit zu erleichtern. Diese Art des Datenzugriffs unterscheidet sich
grundsätzlich vom reinen Import. Die Daten bleiben in ihrem bestehenden Datenformat, lediglich aus der
Sicht der Programmierers handelt es sich um eine Access-Tabelle (mit einigen Einschränkungen), die für
die weitere Bearbeitung zur Verfügung steht.
Grundsätzlich bieten sich zwei Varianten an, jedoch nur letztere kann empfohlen werden:
Direktes Öffnen der externen Tabelle
Einbinden der externen Tabelle
Die erste Variante ist zwar flexibler, dafür dauert der Verbindungsaufbau aber etwas länger, da die Daten-
bank-Engine bei der Einbindung einer Tabelle einige Zusatzinformationen speichert, die einen späteren
Verbindungsaufbau beschleunigen sollen. Gespeichert werden diese Informationen in der Access-Daten-
bank, über die auch alle weiteren Zugriffe laufen (Öffnen der Tabelle, Einfügen, Löschen, Suchen etc.).
Verwenden der DAO
Erstellen einer Verbindung
Das Erstellen einer Verbindung ist relativ einfach, Alles, was Sie dazu brauchen, ist ein geöffnetes Database-
Objekt (z.B. mit CurrentDB() erstellen). Als Nächstes erzeugen Sie ein neues TableDef-Objekt, dem Sie
einen Bezeichner zuweisen, der den Access-Richtlinien für Tabellennamen entspricht. Verwenden Sie dazu
die CreateTableDef-Methode des Database-Objekts:
Set td = db.CreateTableDef("Verbindung zur Tabelle XYZ")
Der nächste Schritt gilt dem Festlegen der Verbindungsoptionen. Diese sind vom Datenbankformat der
Quelltabelle abhängig:
td.Connect = "FoxPro 2.5;DATABASE=c:\foxpro"
Die in Frage kommenden Connect-Strings zeigt die folgende Tabelle:
Datenbanktyp Kennzeichen
Access "[Datenbank];"
dBASE III "dBASE III;"
dBASE IV "dBASE IV;"
dBASE 5 "dBASE 5.0;"
Paradox 3.x "Paradox 3.x;"
Paradox 4.x "Paradox 4.x;"
Tabelle 9.23 Connect-Strings für Datenbanken
571
Einbinden externer Tabellen
BEISPIEL
Kapitel 9: Fortgeschrittene Datenbankprogrammierung
Datenbanktyp Kennzeichen
Paradox 5.x "Paradox 5.x;"
FoxPro 2.0 "FoxPro 2.0;"
FoxPro 2.5 "FoxPro 2.5;"
FoxPro 2.6 "FoxPro 2.6;"
Excel 3.0 "Excel 3.0;"
Excel 4.0 "Excel 4.0;"
Excel 5.0 "Excel 5.0;"
Excel 7.0 "Excel 7.0;"
Excel 95/97/2000/2002/2003 "Excel 8.0;"
HTML-Import "HTML Import;"
HTML-Export "HTML Export;"
Text "Text;"
ODBC "ODBC; DATABASE=Datenbankname; UID=Benutzer; PWD=Kennwort; DSN=Datenquelle;
LOGINTIMEOUT=Sekunden"
Tabelle 9.23 Connect-Strings für Datenbanken (Fortsetzung)
Legen Sie zum Schluss noch den Tabellennamen fest und speichern Sie die Tabellendefinition.
td.SourceTableName = "Kunden"
db.TableDefs.Append td
Einbinden einer Excel-Tabelle
Die Problematik soll an einem Beispiel verdeutlicht werden.
Erstellen der Verbindung zu einer Excel-Tabelle
Sub EXCEL_einbindung()
Dim td As DAO.TableDef
Set td = CurrentDb().CreateTableDef("Verbindung zur Tabelle XYZ")
td.Connect = "Excel 8.0;DATABASE=c:\mappe1.xlsx"
Wir wollen das erste Tabellenblatt lesen:
td.SourceTableName = "Tabelle1$"
CurrentDb.TableDefs.Append td
End Sub
Bei einem Test scheint auch alles wunderbar zu funktionieren, bis Sie auf die aberwitzige Idee verfallen, die
Daten ändern zu wollen:
572

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.