Kombinationsfeld mit reflexiven Daten

Ein Beispiel für Daten, die aus reflexiv verknüpften Tabellen stammen und die über ein Kombinationsfeld auswählbar sein sollen, sind Kategorien. Diese verwalten Sie typischerweise über ein TreeView-Steuerelement. Aber wenn Sie einem Element eine dieser Kategorien zuweisen wollen, steht zum Beispiel aus Platzgründen vielleicht nur ein Kombinationsfeld zur Auswahl zur Verfügung. Wir zeigen zwei Möglichkeiten, mit denen Sie die Daten aus reflexiv verknüpften Tabellen in einem Kombinationsfeld anzeigen können.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 2001_KombinationsfeldMitReflexivenDaten.accdb.

Beispieldaten

Die Daten, auf denen die folgenden Beispiele aufbauen, stammen wahlweise aus einer Tabelle namens tblKategorien mit den drei Feldern KategorieID, Kategorie und ParentKategorieID, wobei das letzte Feld zur Festlegung übergeordneter Elemente dient. Oder aus den zwei verknüpften Tabellen tblKate-gorien2 und tblKategoriezuordnungen, wobei tblKategorien2 nur die beiden Felder KategorieID und Kategorie enthält und die Tabelle tblKategoriezuordnungen die Felder KategoriezuordnungID, ParentkategorieID und ChildkategorieID. Die letzten beiden Felder sind Fremdschlüsselfelder, die eine Zuordnung von über- und untergeordneten Einträgen der Tabelle tblKategorien2 erlaubt. Details hierzu finden Sie in den beiden Artikeln Reflexive Daten in Tabellen und Reflexive Daten in Abfragen.

Letzterer beschreibt auch, wie Sie die beiden Tabellen tblKategorien2 und tblKategoriezuordnungen so in einer Abfrage zusammenfassen, dass Sie die gleiche Darstellung wie in einer Tabelle tblKategorien erhalten, die direkt das Feld zur Zuordnung zu einem übergeordneten Element enthält. Das Ergebnis dieser Abfrage sieht beispielsweise wie in Bild 1 aus.

Datenbasis für die Darstellung im Kombinationsfeld

Bild 1: Datenbasis für die Darstellung im Kombinationsfeld

Ziel des Artikels

Die Daten aus reflexiven Tabellen lassen sich auf verschiedene Arten darstellen. Wenn Sie die Hierarchie übersichtlich anzeigen und auch die Möglichkeit bieten wollen, die Daten zu verwalten, bietet sich ein TreeView-Steuerelement für diesen Zweck an. Hier können Sie untergeordnete Elemente ein- und ausklappen, Elemente hinzufügen, entfernen, umbenennen oder verschieben. Wie das geht, zeigt der Artikel Kategorien im TreeView verwalten.

Sie können aber auch ein Listenfeld oder ein Kombinationsfeld verwenden, um die Daten der reflexiven Beziehung darzustellen. Im einfachsten Fall zeigen Sie dann einfach nur die Namen der jeweiligen Kategorien an. Da das Kombinations- oder Listenfeld einfach nur der Auswahl der Kategorie dienen soll, reicht das in vielen Fällen schon aus.

Zuordnung zu Artikeln

Zu Beispielzwecken fügen wir noch eine Tabelle namens tblArtikel hinzu, wobei sich diese Tabelle diesmal nicht auf Artikel im Sinne von Produkten, sondern von Zeitschriftenartikeln bezieht. Diese Tabelle sieht in der Entwurfsansicht wie in Bild 2 aus. Das Fremdschlüsselfeld KategorieID zur Auswahl der Kategorie, zu der ein Artikel gehört, haben wir wie üblich eingerichtet – also ohne Berücksichtigung der reflexiven Beziehung.

Tabelle, der die Kategorien per Fremdschlüsselfeld zugewiesen werden

Bild 2: Tabelle, der die Kategorien per Fremdschlüsselfeld zugewiesen werden

Formular zur Anzeige der Artikel

Das Formular frmArtikelDetail zeigt jeweils einen Artikel in der Detailansicht an. Dazu gehört auch das Kombinationsfeld KategorieID (siehe Bild 3). Wir haben die Tabelle tblArtikel als Datensatzquelle des Formulars angegeben und alle Felder aus der Feldliste in den Detailbereich gezogen. Das Fremdschlüsselfeld KategorieID, das wir in der Tabelle als Nachschlagefeld definiert haben, wird hier automatisch als Kombinationsfeld angelegt.

Formular zur Darstellung der Artikel mit Auswahl der Kategorie

Bild 3: Formular zur Darstellung der Artikel mit Auswahl der Kategorie

Wenn wir nun in die Formularansicht wechseln und dort das Kombinationsfeld aufklappen, finden wir die Auswahl aus Bild 4 vor. Das sieht nur auf den ersten Blick gut aus, denn wir haben Kategorien teilweise mehrfach angelegt. Warum das Weil wir eine Hierarchie haben, wo Kategorien in verschiedenen Kontexten vorkommen. So gehört beispielsweise Datenauswahl einmal zur übergeordneten Kategorie ADO und einmal zu DAO. Hier wird nun also deutlich, dass wir mehr brauchen als nur die letzte Kategorie des jeweiligen Hierarchiezweiges. Wie bekommen wir das hin Eine Möglichkeit haben wir bereits im Artikel Reflexive Daten in Abfragen beschrieben.

Auswahl der Kategorien

Bild 4: Auswahl der Kategorien

Kategorien samt übergeordneten Kategorien anzeigen

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar