O'Reilly logo

Microsoft Office Access 2007 - Das Handbuch by Natascha Nicol, Ralf Albrecht

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Synchronisierte Unterformulare
517
Formulare
Abbildg. 23.35
Das Hauptformular beim Rüberziehen des Unterformulars
Vermutlich müssen Sie jetzt die Unterformulare noch bearbeiten, bis das Formular so aussieht wie
Sie es sich vorgestellt haben. Öffnen Sie das Unterformular mithilfe der Schaltfläche Unterformular
in eigenem Fenster.
Beachten Sie bei verschachtelten Formularen, dass hier teilweise viele Daten
bewegt werden müssen, um die Anzeige zu aktualisieren. Das kann deutliche Leistungseinbußen
zur Folge haben, was bedeutet, dass die Formulare nur langsam mit Daten gefüllt werden.
Synchronisierte Unterformulare
Sie können auf einem Formular problemlos mehrere Unterformulare nebeneinander platzieren.
Jedes der Unterformulare kann mit dem Hauptformular verknüpft sein. Darüber hinaus besteht die
Möglichkeit, Unterformulare zu synchronisieren. Dabei bestimmt beispielsweise die Auswahl im
ersten Unterformular, was im zweiten Unterformular gezeigt wird. Lassen Sie uns dies an einem Bei-
spiel verdeutlichen.
Für jeden Filmtitel sollen in einem Unterformular die Kalenderwoche und die LfdWoche gezeigt wer-
den, in denen dieser Film gezeigt wird. Zu jeder Kalenderwoche sollen dann in einem weiteren
Unterformular die Termine, also Ta g und Zeit, dargestellt werden.
Wie schon oft in Access erlebt, führt der schnellste Weg zum Ergebnis über einen Assistenten. Der
Formular-Assistent verfügt über die Fähigkeit, synchronisierte Unterformulare zu generieren. Da
bietet es sich natürlich an, diesen Assistenten einzusetzen.
HINWEIS
Kapitel 23
Unterformulare
518
Starten Sie den Formular-Assistenten und selektieren Sie im zweiten Dialogfeld die Felder Filmtitel
aus tblFilme, Kalenderwoche und LfdWoche aus tblWochen und zuletzt Ta g und Zeit aus tblTermine.
Die Tabellen stehen zueinander in Beziehung, da tblFilme mit tblWochen verknüpft ist, ebenso wie
tblWochen mit tblTermine.
Abbildg. 23.36
Auswahl der Felder
Die Beziehungen zwischen den Tabellen werden vom Assistenten ausgewertet, um die Darstellung
des nächsten Dialogfeldes aufzubauen.
Abbildg. 23.37
Aufteilung in zwei Unterformulare
Nach der Fertigstellung des Formulars entsteht, je nach der von Ihnen im Assistenten gewählten For-
matierung, ein Formular ähnlich zu dem in Abbildg. 23.38. Hierbei wählten wir die Datenblatt-
ansicht für beide Unterformulare.
Synchronisierte Unterformulare
519
Formulare
Abbildg. 23.38
Mit synchronisierten Unterformularen
Stellen Sie den Mauszeiger im oberen Unterformular auf eine bestimmte Woche, so werden im unteren
Formular sofort die dazugehörigen Termine eingeblendet.
In Abbildg. 23.38 sind die Bezeichnungen für Haupt- und Unterformular direkt auf
dem Formular zu sehen. Die Bezeichnungen enden alle mit »Synchron«. Wir empfehlen Ihnen, die
Bezeichnungen von Haupt- und Unterformularen um eine entsprechende Kennung zu erweitern,
damit Sie ersehen können, welche Haupt- und Unterformulare zusammengehören. Bei CineCity
gibt es beispielsweise eine Reihe von Unterformularen, die mit subfrmTermine beginnen, die aber
ganz unterschiedliche Aufgaben und Layouts haben.
Sehen Sie sich nun die vom Assistenten generierten Formulare etwas genauer an. In Abbildg. 23.39
sind die Eigenschaften des unteren Unterformulars für die Darstellung der Termine abgebildet.
Die Eigenschaft Verknüpfen nach enthält den Verweis auf die entsprechende Woche des Unterformulars,
in dem Kalenderwoche und LfdWoche dargestellt werden. Mit
[subfrmWochenSynchron].Form!
[WochenNr]
wird der aktuelle Wert von
WochenNr
im Steuerelement
subfrmWochenSynchron
ermittelt. Dies
könnte man auch kürzer als
[subfrmWochenSynchron]![WochenNr]
schreiben.
HINWEIS
Kapitel 23
Unterformulare
520
Abbildg. 23.39
Eigenschaften des zweiten Unterformulars
Der Verweis bezieht sich übrigens immer auf die WochenNr des aktuellen Datensatzes. Sie könnten
jetzt einwenden, wie auf die WochenNr verwiesen werden kann, die weder im Unterformular darge-
stellt wird, noch im Assistenten (Abbildg. 23.36) selektiert wurde? Das ist leicht zu erklären: Die
Datensatzquelle für die Unterformulare ist immer die gesamte Tabelle, also tblWochen bzw. tblTer-
mine, auch wenn nur ausgewählte Felder im Formular gezeigt werden.
In Kapitel 24 erläutern wir Ihnen die verschiedenen Schreibweisen für Verweise, die verwendet wer-
den können, um auf Steuerelemente in Formularen zuzugreifen. Wann wird ein Punkt gesetzt und
wann ein Ausrufezeichen? Warum erscheint manchmal die Fehlermeldung »#Name?«? Diese und
andere Fragen werden wir dort beantworten.
Der Verweis in der Eigenschaft Verknüpfen nach des zweiten Unterformulars reicht aber noch nicht
aus. Das Unterformular für die Termine muss vom Unterformular der Wochen informiert werden,
dass eine Änderung stattgefunden hat, d.h. dass vom Anwender eine andere Woche selektiert wurde.
Diese Information geht vom Unterformular subfrmWochenSynchron aus. Öffnen Sie also das For-
mular in der Entwurfsansicht.
Abbildg. 23.40
Das erste Unterformular
Synchronisierte Unterformulare
521
Formulare
Wie erfährt man nun, ob etwas Besonderes für das Formular vereinbart wurde? Am einfachsten,
indem man sich die Eigenschaften des Formulars und gegebenenfalls die Eigenschaften der Steuer-
elemente ansieht.
In den Eigenschaften des Formulars ist für das Ereignis Beim Anzeigen eine Ereignisprozedur, also
ein Visual Basic-Programm, definiert.
Abbildg. 23.41
Die Formularereignisse
Über die Schaltfläche rechts in der Zeile Beim Anzeigen rufen Sie das Modulfenster des Formulars
auf. Für das Ereignis wurde vom Formular-Assistenten ein größerer Programmblock eingesetzt.
Abbildg. 23.42
Das Programm für das Ereignis Beim Anzeigen

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required