Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

1:n-Beziehung per Assistent anlegen

1:n-Beziehungen sind das Salz in der Datenbanksuppe. Jede relationale Beziehung ist prinzipiell eine 1:n-Beziehung - dabei gibt es natürlich einige Sonderfälle. Hier erfahren Sie, wie Sie eine 1:n-Beziehung anlegen.

Beziehung zwischen Projekten und Kunden

Ein klassisches Beispiel für eine 1:n-Beziehung ist die zwischen Projekten und Kunden. Dabei soll jedem Projekt genau ein Kunde zugeordnet werden können, was im Umkehrschluss bedeutet, dass jedem Kunden mehrere Projekte zugeordnet werden können.

Nehmen Sie also einfach zwei vereinfachte Tabellen namens tblKunden und tblProjekte an. Um einem Projekt einen Kunden zuordnen zu können, müssen Sie eine Beziehung zwischen den beiden Tabellen herstellen. Dazu muss die Tabelle tblKunden über einen eindeutigen Index verfügen, den sogenannten Primärindex. Dieses Feld heißt beispielsweise KundeID und ist vom Datentyp Autowert - das bedeutet, dass dieser Wert für jeden neuen Datensatz automatisch ausgewählt wird. Autowert ist eigentlich kein eigener Datentyp, sondern ein Spezialfall des Datentyps Zahl. In der Tabelle der Projekte müssen Sie ein Feld hinzufügen, über das die Beziehung zu den Datensätzen der Tabelle tblKunden hergestellt werden kann.

Am einfachsten geht das über den Nachschlagefeld-Assistent. Legen Sie zunächst in der Tabelle tblProjekte ein Feld namens KundeID an und stellen Sie dessen Felddatentyp auf Nachschlage-Assistent ein.

Im nachfolgenden Assistent wählen Sie zunächst die Option Das Nachschlagefeld soll die Werte einer Tabelle oder Abfrage entnehmen aus. Anschließend legen Sie die Tabelle tblKunden als Datenherkunft für dieses Feld fest. Der folgende Dialog fragt Sie nach den anzuzeigenden Feldern im Nachschlagefeld. Hier wählen Sie als erstes Feld den Primärindex und als zweites Feld das den Kunden beschreibende Feld der Tabelle tblKunden aus. Da der Primärindex für den Benutzer uninteressant ist und er nur den Namen des Kunden zur Auswahl erhalten soll, aktivieren Sie im nächsten Dialog die Option Schlüsselspalte ausblenden. Die letzte Einstellung können Sie einfach übernehmen.

1:n-Beziehung im Beziehungen-Fenster

Der Nachschlageassistent hat nun sowohl das Feld KundeID in ein Nachschlagefeld umgewandelt, mit dem Sie innerhalb der Tabelle bequem den Kunden für das gewünschte Projekt festlegen können. Wenn Sie dieses Feld nun in den Entwurf eines Formular ziehen, wird es als Kombinationsfeld ausgeführt und bietet den gleichen Komfort wie die Tabelle.

Wenn Sie über den Menüeintrag Extras/Beziehungen den Dialog Beziehungen öffnen (siehe Abbildung 1), können Sie sich die frische Beziehung zwischen den beiden Tabellen ansehen.

Abbildung 1: 1:n-Beziehung im Beziehungen-Fenster

Hier können Sie auch weitere Eigenschaften der Beziehung festlegen. Klicken Sie dazu mit der rechten Maustaste auf den Beziehungspfeil und wählen Sie aus dem Kontextmenü den Eintrag Beziehung bearbeiten... aus.

Im nun erscheinenden Dialog Beziehungen bearbeiten können Sie beispielsweise festlegen, über welche Felder die Beziehung festgelegt werden soll und ob für die Beziehung referentielle Integrität gelten soll (siehe Abbildung 2).

Abbildung 2: Die Eigenschaften einer Verknüpfung

Referentielle Integrität und Co.

Wenn für eine Beziehung referentielle Integrität gilt, überprüft Access, ob alle Werte des Fremdschlüsselfeldes der Tabelle auf der 1-Seite der Beziehung auch in der verknüpften Tabelle als Primärschlüssel enthalten sind. Das wird beim Festlegen der referentiellen Integrität und auch beim Anlegen weiterer Datensätze überprüft. Daneben sichert Access, dass - um bei obigem Beispiel zu bleiben - keine Datensätze aus der Kunden-Tabelle gelöscht werden, die noch einem Projekt zugeordnet sind.

Dabei gibt es eine Ausnahme: Wenn Sie im gleichen Dialog die Option Löschweitergabe aktivieren, werden beim Löschen eines Kunden auch gleich alle Projekte gelöscht, die dem Kunden zugeordnet waren.

Es können allerdings Datensätze aus der Projekt-Tabelle gelöscht werden, ohne dass die Kundendaten berührt werden.

Die Option Aktualisierungsweitergabe an verwandte Felder bewirkt, dass Änderungen am Primärindex der Kundentabelle automatisch in die Projekttabelle übernommen werden.

© 2003-2015 André Minhorst Alle Rechte vorbehalten.