HINWEIS
Kapitel 6: DAO-Programmierung
Typ Bedeutung
Eindeutiger Index Das betreffende Feld wird indiziert, es tritt ein Fehler auf, wenn doppelte Datensätze gespeichert
werden:
Dim ind As New index
ind.Name = "Name" ' Indexname
ind.Fields = "Name" ' Tabellenfeld
ind.Unique = True
td.Indexes.Append ind
Zusammengesetzter Index Im Index sind mehrere Felder zusammengefasst:
Dim ind As New index
ind.Name = "Index1 " 'Indexname
ind.Fields = "Name;Vorname" 'Tabellenfelder
td.Indexes.Append ind
Die Kombination mit »eindeutigem Index« ist möglich.
Hauptindex Dieser bestimmt einen Index zur eindeutigen Identifikation jedes Records in der Tabelle. Nur ein Index
pro Tabelle kann Hauptindex sein:
Dim ind As New index
ind.Name = "PrimaryKey" 'Defaultwert
ind.Fields = "Nr" 'Tabellenfeld
ind.Primary = True
ind.Unique = True
td.Indexes.Append ind
Die Eigenschaft Unique wird durch die obige Bedeutung bereits impliziert.
Tabelle 6.6 Access-Indexvarianten (Fortsetzung)
Verwenden Sie für einfache Indizes den gleichen Namen wie für das Feld. Zusammengesetzten Indizes können
Sie einen beliebigen Namen geben. Der Hauptindex erhält immer den Namen »PrimaryKey«.
Eigenschaft Beschreibung
IgnoreNulls Legt fest, ob Records mit NULL-Werten in den Index aufgenommen werden dürfen (True/False).
Primary Legt den Hauptindex fest (True/False). Pro Tabelle kann es nur einen Hauptindex geben.
Required Nullwerte zulässig (True/False).
Unique Eindeutiger Index (True/False).
Tabelle 6.7 Eigenschaften des Index-Objekts
Tabellen einbinden
Insbesondere bei der Trennung von Applikation und Datenbank ist es empfehlenswert, die externen
Tabellen in die Applikationsdatenbank einzubinden. Einbinden bedeutet in diesem Fall, dass lediglich ein
Verweis auf die Herkunft der Daten gespeichert wird. Alle folgenden Zugriffe erfolgen aber so, als ob es sich
um eine normale Tabelle handeln würde. Das gilt auch für Tabellen, die in Fremdformaten (XBase etc.)
vorliegen oder über die ODBC-Schnittstelle (SQL-Server) eingebunden sind.
Änderungen am Layout einer eingebundenen Tabelle sind nicht zulässig. Alle Beschränkungen des Fremd-
formates (Wertebereiche, Feldgrößen etc.) bleiben erhalten, lediglich der Tabellenname richtet sich jetzt
304
BEISPIEL
BEISPIEL
nach der Access-Konvention. So können Sie z.B. auch einer dBase-Tabelle den Namen »Umsatzentwick-
lung 2007« geben.
Zum Einbinden der Tabelle müssen wir die bisherige Verfahrensweise etwas abändern. Anstatt wie bisher
die CreateTableDef-Methode ohne Parameter aufzurufen, übergeben wir weitere Optionen:
CreateTableDef([Name[, Attribute[, Quelle[, Verbindung]]]])
Parameter Bedeutung
Name Der neue Tabellenname nach Access-Konvention.
Attribute Zusätzliche Attribute für die Verbindung.
Quelle Der Name der Quelltabelle (ohne Extension).
Verbindung Der Connect-String, bestehend aus dem Datenbankkennzeichen und dem Pfad (ISAM oder Access-Datenbanken)
oder dem ODBC-Connect-String.
Tabelle 6.8 Optionen für CreateTable
Die folgenden Beispiele sollen lediglich einen knappen Überblick geben, auf das Thema »Einbinden exter-
ner Datenquellen« wird in Kapitel 9 gesondert eingegangen.
Einbinden einer dBASE-Tabelle (
Animals.dbf
), die sich im Verzeichnis
C:\DBASE
befindet, unter dem neuen
Namen
Animals aus dBASE
.
Set db = CurrentDb()
Set td = db.CreateTableDef("Animals aus dBASE", 0, "ANIMALS", "dBASE IV;Database=C:\DBASE")
db.TableDefs.Append td
Einbinden einer SQL-Server-Datenbank über die ODBC-Schnittstelle; Tabellenname
autoren
, ODBC-Name
ServerTEST
, Datenbank
verleger
, UserID =
sa
, Passwort
geheim
.
Set db = CurrentDb()
Set td = db.CreateTableDef("Eingebundene Server-Tabelle")
Zusätzliches Festlegen des Connect-Strings inklusive Passwort
td.Connect = "ODBC;DATABASE=verleger;UID=sa;PWD=geheim;DSN=ServerTEST"
td.SourceTableName = "autoren"
db.TableDefs.Append td
Das Einbinden von Tabellen hat gegenüber dem direkten Öffnen der Fremd-Datenbank (über OpenData-
base) den Vorteil, bedeutend schneller zu sein. Greift die Datenbank-Engine auf Fremdformate zu, muss
erst die Tabellenstruktur analysiert werden, was natürlich Zeit kostet. Beim Einbinden wird die Struktur der
Fremdtabelle in der Access-Datenbank gespeichert (nicht die Daten!).
305
Grundlegende Arbeitstechniken

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.