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

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2010.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Verwalten Sie die Daten der Verknüpfungstabelle einer m:n-Beziehung über das Kontrollkästchen einer temporären Tabelle

Techniken

Formulare, Tabellen

Voraussetzungen

Access 2002 und höher

Beispieldateien

IndividuelleDatenauswahl.mdb

Shortlink

www.access-im-unternehmen.de/723

m:n-Beziehung per Kontrollkästchen verwalten

André Minhorst, Duisburg

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. Abb. 1 zeigt, wie das am Beispiel von Fahrzeugen und deren Ausstattungsmerkmalen aussehen soll.

pic001.png

Abb. 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 (s. Abb. 2). Die beiden Tabellen tblFahrzeuge und tblAusstattungen sind dabei über die Tabelle tblFahrzeugeAusstattungen miteinander verknüpft.

pic002.png

Abb. 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 (s. Abb. 3).

pic004.png

Abb. 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 Abb. 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.

pic003.png

Abb. 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 Abb. 5 ergibt.

pic005.png

Abb. 5: Haupt- und Unterformular in der Entwurfsansicht

Ausstattungen per temporärem Recordset

Nun ist es an der Zeit, auch das Unterformular an eine Datenherkunft zu binden beziehungsweise ihm die entsprechenden Daten hinzuzufügen. Dabei greifen wir auf eine im Beitrag Temporäre Datensatzgruppen (www.access-im-unternehmen.de/711) vorgestellte Technik zu, die allerdings leider erst ab Access 2002 funktioniert.

Normalerweise wird ein Unterformular, dessen Daten über ein Fremdschlüsselfeld mit denen des Hauptformulars verknüpft sind, beim Anzeigen eines neuen Datensatzes automatisch aktualisiert. Dazu stellt man die Eigenschaften Verknüpfen von und Verknüpfen nach auf die Namen der Steuerelemente mit dem Primär- und dem Fremdschlüsselfeld der beiden beteiligten Formulare ein. Hier ist die Verwendung dieser Eigenschaften nicht möglich, und das Unterformular besitzt ohnehin keine feste Datenherkunft.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Reihenfolge manuell anpassen

Bücherverwaltung

Daten aus verknüpften Tabellen kopieren

Navigationsleiste im Eigenbau

Nachschlage- und mehrwertige Felder

© 2003-2015 André Minhorst Alle Rechte vorbehalten.