Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Waren Containers, Documents und Properties Thema der letzten Ausgabe über DAO-Objekte, so geht es diesmal abschließend um Relations und Workspaces. Dabei handelt es sich zum einen um die Abbildung und Manipulation von Tabellenbeziehungen im Objektmodell, zum anderen um die sogenannten Arbeitsbereiche der Access Database Engine. Erfahren Sie, wie Tabellenbeziehungen einer Datenbank ermittelt und neu angelegt werden können.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1511_DAORelations.accdb
Beziehungsbeispiel
Die Beispieldatenbank enthält vier uns mittlerweile wohlbekannte Tabellen, die über einige Beziehungen miteinander verknüpft sind. Zu den Feldern IDAnrede, IDOrt und IDLand der Tabelle tblAdressen existieren drei Nachschlagetabellen, die mit ihr auf unterschiedliche Weise in Beziehung stehen (siehe Bild 1). Für unsere Zwecke wurden die Beziehungen zum Testen auf etwas eigentümliche Weise modifiziert, die so allerdings keinen rechten Sinn mehr ergeben.
Bild 1: Beziehungslayout der Beispieldatenbank
Bild 2 zeigt die Einstellungen für die Beziehung zwischen Adressen- und Anreden-Tabelle. Die Referenzielle Integrität wurde ausgeschaltet, aber der Typ mit 1:n beibehalten. Die Einstellungen für die Nachschlagetabelle zu Orten findet sich in Bild 3. Hier wurde nichts verändert. Schließlich stellt Bild 4 die Beziehung für die Länder-Tabelle dar, bei der jeweils zwei Felder verknüpft wurden. Neben dem eigentlichen Primärschlüsselfeld ID zu IDAnrede ist zusätzlich der Ländername Land selbst in der zweiten Zeile 1:n-verknüpft. Außerdem ist der Typ der Beziehung, erreichbar über die Schaltfläche Verknüpfungstyp…, auf den dritten Modus eingestellt, was sie zu einer Left-Join-Beziehung macht (Bild 5) Mit diesen Vorgaben lässt sich Referenzielle Integrität ohnehin nicht mehr festlegen, weil keine Eindeutigkeit mehr gegeben ist.
Bild 2: Einstellungen für die Beziehung zur Tabelle tblOrte
Bild 3: Verknüpfungstyp der Beziehung zu tblLaender
Bild 4: Einstellung für die Beziehung zur Tabelle tblLaender
Bild 5: Einstellungen der Beziehung zur Tabelle tblAnreden
Beziehungen auslesen
Für die Beziehungen einer Datenbank ist über das VBA-Objekt Database deren Auflistungseigenschaft Relations zuständig. Die kurze Routine GetRelations in Listing 1 macht deutlich, wie die einzelnen Relation-Objekte in einer For-Each-Schleife durchlaufen werden können.
Sub GetRelations() Dim dbs As Database Dim rel As DAO.Relation Set dbs = CurrentDb For Each rel In dbs.Relations Debug.Print rel.Name Next rel End Sub
Listing 1: Prozedur zum Durchlaufen der DAO-Auflistung Relations
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo