Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Wenn Sie die Daten zweier Tabellen mit einer einfachen Verknüpfungstabelle zu einer m:n-Beziehung verbunden haben, können Sie die Daten auf verschiedenste Arten verwalten. Wir stellen eine nicht so oft verwendete, aber dennoch sehr ergonomische Variante vor. Dabei erfolgt die Zuordnung ausschließlich über das Aktivieren oder Deaktivieren eines Kontrollkästchens für den gewünschten Eintrag.
Ziel dieses Beitrags
Übliche Ausprägungen der m:n-Beziehung sehen ein Haupt- und ein Unterformular vor, wobei das Hauptformular einen Datensatz der m-Seite der Beziehung anzeigt und das Unterformular die damit verknüpften Datensätze der n-Seite. Neue verknüpfte Datensätze lassen sich beispielsweise per Kombinationsfeld in einem neuen Datensatz im Unterformular hinzufügen, wie es auch im Bestellformular der Nordwind-Datenbank der Fall ist.
Hier ist gleichzeitig die Bearbeitung weiterer in der Verknüpfungstabelle enthaltener Daten möglich. Eine andere Möglichkeit zur Darstellung und Bearbeitung einer m:n-Beziehung ist die Verwendung zweier Listenfelder in einem Formular, das selbst an die m-Seite der Verknüpfung gebunden ist. Dabei zeigt das erste Listenfeld alle verknüpften und das zweite Listenfeld die übrigen Datensätze der n-Seite an
In unserem Beispiel möchten wir eine Darstellung erzielen, bei dem das Hauptformular den Datensatz der m-Seite und das Unterformular alle Datensätze der n-Seite anzeigt – unabhängig davon, ob diese dem aktuellen Datensatz des Hauptformulars zugeordnet sind oder nicht. Diesen Zustand markiert ein Kontrollkästchen, über das der Benutzer gleichzeitig neue Verknüpfungen herstellen als auch bestehende löschen kann. Bild 1 zeigt, wie das am Beispiel von Fahrzeugen und deren Ausstattungsmerkmalen aussehen soll.
Bild 1: Verwaltung der Daten einer m:n-Beziehung per Kontrollkästchen
Beispiel
Als Beispiel verwenden wir Fahrzeuge und deren Ausstattungen. Das Datenmodell haben wir so einfach gehalten wie möglich (siehe Bild 2). Die beiden Tabellen tblFahrzeuge und tblAusstattungen sind dabei über die Tabelle tblFahrzeugeAusstattungen miteinander verknüpft.
Bild 2: Datenmodell der Beispieldatenbank
Diese Tabelle enthält neben dem Primärschlüsselfeld FahrzeugeAusstattungenID zwei Fremdschlüsselfelder, die mit den beiden Tabellen tblFahrzeuge und tblAusstattungen verknüpft sind. Da jedes Fahrzeug jede Ausstattung nur einmal enthalten soll, legen Sie für die beiden Fremdschlüsselfelder einen zusammengesetzten eindeutigen Index fest (siehe Bild 3).
Bild 3: Eindeutiger Index für die Kombination aus Fahrzeug und Ausstattung
Unterformular zur Darstellung der n-Seite der Beziehung
Das Unterformular soll nur zwei Felder anzeigen: die Bezeichnung eines jeden Ausstattungsmerkmals (Feld Ausstattung) und ein Kontrollkästchen, das anzeigt, ob das Fahrzeug aus dem Hauptformular diese Ausstattung besitzt (ohne entsprechendes Feld). Außerdem benötigen wir das Feld AusstattungID, um den Ausstattungs-Datensatz eindeutig zu identifizieren. Um ein wenig Arbeit zu sparen, weisen Sie der Eigenschaft Datenherkunft eines neuen Formulars namens sfmFahrzeugeAusstattungen die Tabelle tblAusstattungen zu. Ziehen Sie aus der Feldliste die beiden Felder AusstattungID und Ausstattung in den Detailbereich des Formularentwurfs.
Fehlt noch das Kontrollkästchen: Dieses erstellen Sie zunächst als neues, ungebundenes Steuerelement, benennen es in IstAusstattung um und stellen die Eigenschaft Steuerelementinhalt auf lstAusstattung ein – auch wenn dieses Feld zum aktuellen Zeitpunkt noch gar nicht in der Datenherkunft des Formulars existiert. Im Entwurf sieht das Unterformular nun wie in Bild 4 aus. Bevor Sie das Unterformular speichern und schließen, leeren Sie die Eigenschaft Datenherkunft wieder – wir kümmern uns später um die Daten für das Formular. Außerdem stellen Sie unbedingt die Eigenschaft Standardansicht auf den Wert Datenblatt ein, damit die Ausstattungen schön tabellarisch angezeigt werden.
Bild 4: Das Unterformular mit einem gebundenen Feld, das in der Datenherkunft nicht existiert.
Hauptformular zur Anzeige der Fahrzeuge
Das Hauptformular soll frmFahrzeugeAusstattungen heißen und die Tabelle tblFahrzeuge als Datenherkunft verwenden. Aus dieser Tabelle fügen Sie dem Formular alle Felder hinzu. Außerdem soll das Formular natürlich das Unterformular mit den verknüpften Ausstattungsmerkmalen anzeigen, wozu Sie das soeben erstellte Formular als Unterformular hinzufügen. Dazu ziehen Sie es am einfachsten aus dem Datenbankfenster beziehungsweise Navigationsbereich in den Detailbereich des Hauptformulars, sodass sich die Konstellation aus Bild 5 ergibt.
Bild 5: Haupt- und Unterformular in der Entwurfsansicht
Ausstattungen per temporärem Recordset
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