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 6/2017.

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

Unterdatenblätter in Formularen

Unterdatenblätter in Tabellen oder Abfragen kennen Sie sicherlich bereits. Das sind die Bereiche einer Datenblattansicht, die aufklappen, wenn Sie das Plus-Zeichen vor einem Datensatz anklicken. Wenn Sie eine Tabelle, für die eine solche Unterdatenblatt-Funktion eingerichtet ist, jedoch in der Datenblattansicht in einem Formular oder Unterformular anzeigen wollen, verschwinden die praktischen Plus-Zeichen und Sie schauen in die Röhre. Doch das ist nicht das Ende der Fahnenstange: Access sieht durchaus den Einsatz von Unterdatenblättern in Formularen vor – und damit lässt sich eine Menge anstellen!

Als Beispiel verwenden wir die beiden Tabellen tblTabellen und tblFelder der Lösung aus dem Beitrag Daten anonymisieren (www.access-im-unternehmen.de/1112). Dabei handelt es sich um zwei Tabellen, von denen die erste alle Tabellennamen einer Datenbank speichern soll und die zweite alle in den Tabellen enthaltenen Felder. Dabei enthält die zweite Tabelle tblFelder ein Fremdschlüsselfeld, mit dem ein Datensatz der Tabelle tblTabellen ausgewählt werden kann, um die Zugehörigkeit des Feldes zu einer Tabelle zu definieren.

Wenn Sie die dortige Tabelle tblTabellen mit einigen Beispieldaten wie hier aus der Südsturm-Datenbank öffnen, erscheinen direkt die Plus-Zeichen, mit denen sich die untergeordneten Datensätze der verknüpften Tabelle tblFelder einblenden lassen (s. Bild 1).

Tabelle mit Unterdatenblatt

Bild 1: Tabelle mit Unterdatenblatt

Warum benötigen wir diese Ansicht? In diesem Fall wollen wir es uns ersparen, ein TreeView-Steuerelement für die Anzeige der hierarchisch verknüpften Daten der beiden Tabellen tblTabellen und tblFelder hinzuzuziehen. Stattdessen wollen wir einmal das oft verschmähte Feature Unterdatenblatt nutzen. In der Lösung, die diese Ansicht nutzen soll, wollen wir die Möglichkeit haben, sowohl Einträge der übergeordneten Tabelle als auch die der untergeordneten Tabelle auszuwählen und abzuwählen. Wie die Abbildung zeigt, könnte man damit schon recht komfortabel die Daten mit den dazu eingerichteten Ja/Nein-Feldern zugreifen. Allerdings wollen wir dort noch einen Schritt weiter gehen: Wenn der Benutzer das Ja/Nein-Feld einer Tabelle selektiert, sollen automatisch alle Einträge der untergeordneten Tabelle mit den Feldern ausgewählt werden. Andersherum soll das Ja/Nein-Feld für eine Tabelle abgewählt werden, wenn der Benutzer nur eines der untergeordneten Felder abwählt. Und wenn der Benutzer das Ja/Nein-Feld für eine Tabelle abwählt, sollen auch alle zu der Tabelle gehörenden Felder abgewählt werden.

Unterdatenblatt im Formular

Wie aber bekommen wir diese Ansicht in das Unterformular eines Formulars? Der erste und einfachere Ansatz ist der folgende: Sie fügen dem Formular ein Unterformular-Steuerelement hinzu. Dann stellen Sie für die Eigenschaft Herkunftsobjekt des Unterformular-Steuerelements den Wert Tabelle.tblTabellen ein (s. Bild 2).

Einrichten eines Unterformulars mit Tabelle plus Unterdatenblatt

Bild 2: Einrichten eines Unterformulars mit Tabelle plus Unterdatenblatt

Wechseln Sie nun in die Formularansicht des Formulars, erhalten Sie die Ansicht aus Bild 3. Das ist ja schon fast genau das, was wir wollen! Aber Moment: Vielleicht bekommen wir noch irgendwie das Feld TabelleID der übergeordneten Tabelle und die Felder FeldID und Felddatentyp der untergeordneten Tabelle weg?

Unterformular mit Tabelle plus Unterdatenblatt

Bild 3: Unterformular mit Tabelle plus Unterdatenblatt

Auch das gelingt uns, indem wir einfach mit der rechten Maustaste auf die Spaltenköpfe der zu entfernenden Felder klicken und diese mit dem Befehl Felder ausblenden des Kontextmenüs verschwinden lassen. Das Ergebnis sehen sie in Bild 4. Nun müssen wir nur noch ein paar Ereignisprozeduren für die Ja/Nein-Felder namens Anonymisieren der Tabellen tblTabellen und tblFelder hinterlegen, mit denen wir die gewünschten und oben erwähnten Funktionen hinterlegen können. Und hier verlässt uns diese einfache Variante dann doch: Da wir als Herkunftsobjekt des Unterformulars eine Tabelle angegeben haben, können wir dafür keine Ereignisse hinterlegen. Dies funktioniert nur, wenn Sie ein Formular mit den entsprechenden Steuerelementen anlegen. Ist unser Plan, die Daten über die Unterdatenblätter anzuzeigen, gescheitert? Nein, wir haben noch eine Alternative!

Unterdatenblatt mit ausgeblendeten Feldern

Bild 4: Unterdatenblatt mit ausgeblendeten Feldern

Unterdatenblatt per Unterformular

Wir können die Daten nämlich auch als echtes Unterformular abbilden. Dazu erstellen Sie als Erstes ein Unterformular namens sfmTabellen. Diesem weisen Sie als Datenherkunft die Tabelle tblTabellen zu. Ziehen Sie dann alle benötigten Felder in den Formularentwurf. Wir wollen nur die beiden Felder Anonymisieren (das Ja/Nein-Feld) und das Feld Tabellenname verwenden. Wir ziehen zuerst das Ja/Nein-Feld in den Entwurf, da dieses in der ersten Spalte angezeigt werden soll (s. Bild 5).

Erstellen des Unterformulars mit den Daten der Tabelle tblTabellen

Bild 5: Erstellen des Unterformulars mit den Daten der Tabelle tblTabellen

Außerdem stellen wir die Eigenschaft Standardansicht auf den Wert Datenblatt ein. Ein Wechsel in die Entwurfsansicht liefert allerdings nicht das erwartete Ergebnis – es erscheinen zwar die Daten der Tabelle tblTabellen, aber keine Plus-Zeichen zum Aufklappen der Unterdatenblätter (s. Bild 6).

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:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.