Synchrone Unterformulare

Es kommt oft vor, dass ein Unterformular Daten anzeigen soll, die mit dem im Hauptformular angezeigten Datensatz in Beziehung stehen. Dies geschieht beispielsweise, wenn das Hauptformular Kunden und das Unterformular die dem Kunden zugeordneten Projekte anzeigt. Es geht jedoch auch noch eine Stufe weiter: Dann soll ein Unterformular Daten in Abhängigkeit vom Hauptformular anzeigen und ein weiteres Daten, die vom aktuellen Datensatz des Unterformulars abhängen. Wie Sie dies bewerkstelligen, zeigt dieser Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1210_SynchroneUnterformulare.mdb.

Beispieldaten

Als Beispieldaten verwendet dieser Artikel die Tabellen der Südsturm-Datenbank, einer abgewandelten Variante der Nordwind-Datenbank. Bild 1 zeigt alle Tabellen, deren Daten im Beispielformular angezeigt werden sollen. Das Hauptformular soll dabei die Kundendaten aus der Tabelle tblKunden liefern und dabei jeweils einen Datensatz anzeigen.

Diese Tabellen sollen im Formular angezeigt werden.

Bild 1: Diese Tabellen sollen im Formular angezeigt werden.

Ein erstes Unterformular zeigt alle Datensätze der Tabelle tblBestellungen an, die zum aktuell im Hauptformular angezeigten Datensatz der Tabelle tblKunden passen, deren Fremdschlüsselfeld KundeID also den Wert des Feldes KundeID des Hauptformulars enthält.

Außerdem wollen wir noch die Bestelldetails zur jeweils im ersten Unterformular ausgewählten Bestellung sehen, und zwar in einem zweiten Unterformular.

Dieses zeigt prinzipiell nur Daten der Tabelle tblBestelldetails an, wobei das Nachschlagefeld ArtikelID seine angezeigten Daten (hier den Artikelnamen) aus der Tabelle tblArtikel bezieht.

Hauptformular frmSynchroneUnterformulare

Das Hauptformular wird in der Formularansicht als Standardansicht angezeigt. Es verwendet die Tabelle tblKunden als Datenherkunft, wobei wir der übersicht halber nur einige wenige Felder dieser Tabelle im Entwurf platzieren (siehe Bild 2).

Ausgangsbasis: Das Formular frmSynchroneUnterformulare mit Daten aus der Tabelle tblKunden

Bild 2: Ausgangsbasis: Das Formular frmSynchroneUnterformulare mit Daten aus der Tabelle tblKunden

Unterformular sfmBestellungen

Das Unterformular zur Anzeige der Bestellungen soll sfmBestellungen heißen. Es verwendet die Tabelle tblBestellungen als Datenherkunft. Fügen Sie etwa die Felder BestellungID, PersonalID, Bestelldatum und Lieferdatum zum Detailbereich des Formularentwurfs hinzu (siehe Bild 3). Stellen Sie außerdem die Eigenschaft Standardansicht auf den Wert Datenblatt ein, damit das Formular die Daten in tabellarischer Form anzeigt.

Das erste Unterformular zeigt die Daten der Tabelle tblBestellungen an.

Bild 3: Das erste Unterformular zeigt die Daten der Tabelle tblBestellungen an.

Schließen Sie das Unterformular und vergeben Sie beim Speichern den Namen sfmBestellungen. öffnen Sie das Hauptformular frmSynchroneUnterformular in der Entwurfsansicht und ziehen Sie den Eintrag sfmBestellungen aus dem Datenbankfenster (bis Access 2003) beziehungsweise dem Navigationsbereich (ab Access 2007) in den Entwurf des Formulars frmSynchroneUnterformulare.

Das Ergebnis sieht schließlich wie in Bild 4 aus. Das Formular sfmBestellungen wird in ein Unterformular-Steuerelement eingebettet und wird in der Entwurfsansicht innerhalb des Hauptformulars angezeigt.

Einbau des ersten Unterformulars

Bild 4: Einbau des ersten Unterformulars

Wichtig ist an dieser Stelle, dass das Eigenschaftsfenster für das Unterformular-Steuerelement die beiden Eigenschaften Verknüpfen von und Verknüpfen nach automatisch mit dem Aus-druck KundeID gefüllt wird. Die Eigenschaften des Unter-for-mular-Steuerelements wer-den gern mit denen des im Unterformular-Steuerele-ment enthaltenen Formulars verwechselt. Damit Sie gleich die richtigen Eigenschaften prüfen können, klicken Sie an einer beliebigen Stelle in das Hauptformular (nur nicht auf das Unterformular) und wählen dann aus dem Kombinationsfeld mit der Liste der Elemente im Eigenschaftsfenster den Eintrag aus, der mit dem Namen des eingefügten Unterformulars übereinstimmt (hier sfmBestellungen). Nach der Auswahl erscheinen auf der Registerseite Daten die gewünschten Eigenschaften.

Access hat hier automatisch erkannt, dass das Unterformular ein Fremdschlüsselfeld enthält, dass mit dem im Hauptformular enthaltenen Primärschlüsselfeld verknüpft ist und eine entsprechende Abhängigkeit zwischen Haupt- und Unterformular hergestellt. Ein Wechsel in die Formularansicht zeigt, dass nur die zum jeweiligen Kunden passenden Datensätze der Tabelle tblBestellungen angezeigt werden (siehe Bild 5).

Haupt- und Unterformular in Aktion

Bild 5: Haupt- und Unterformular in Aktion

Unterformulare synchronisieren

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