Unterformulare von mehreren Faktoren abhängig machen

Der Inhalt von Unterformularen hängt davon ab, welcher Datensatz im Hauptformular aktiv ist. Allerdings ist es manchmal praktisch, den Inhalt eines Unterformulars von mehreren Faktoren abhängig zu machen. So ist es zum Beispiel möglich, im Formular »Kategorien« der Beispiel-Datenbank »Nordwind« ein zusätzliches Kriterium »Lieferanten« einzufügen, das die Auswahl der im Unterformular angezeigten Produkte weiter eingrenzt.

Dafür erstellen Sie zunächst mit Hilfe des Abfrageassistenten eine neue, auf der Tabelle »Lieferanten« basierende Abfrage. Nehmen Sie die Felder »Lieferanten-Nr« und »Firma« in die Auswahl auf und klicken Sie auf »Fertigstellen«. Wählen Sie dann im Menü »Ansicht« den Punkt »SQL« und markieren Sie den gesamten sichtbaren Text, um ihn mit »Bearbeiten | Kopieren« in die Zwischenablage zu befördern.

Öffnen Sie nun das Formular »Kategorien« in der Entwurfsansicht und legen Sie ein neues Kombinationsfeld an. Nach einem rechten Mausklick auf das Feld wählen Sie »Eigenschaften« und klicken in die Eingabezeile »Datensatzherkunft« im Register »Daten«. Mit der Tastenkombination [Strg] [V] fügen Sie hier die zuvor kopierte Zeichenfolge ein. Lassen Sie die Eigenschaften des Kombinationsfeldes geöffnet und wechseln Sie zum Register »Alle«. Als »Name« geben Sie die Bezeichnung »Lieferant« ein, in das Feld »Spaltenanzahl« schreiben Sie eine »2« und in das Feld »Spaltenbreiten« die Zeichenfolge »0;4«.

Ein Makro sorgt nun dafür, daß das Unterformular nach den Änderungen des Kombinationsfeldes aktualisiert wird. Dafür klicken Sie zuerst mit der linken Maustaste in das Feld »Nach Aktualisieren« im Register »Ereignis« und anschließend auf die Schaltfläche mit den drei Punkten rechts daneben. In der kleinen Dialogbox wählen Sie »Makro-Editor«.

Im Makro-Editor wählen Sie in der ersten Zeile der Spalte »Aktion« den Eintrag »AktualisierenDaten« aus und schreiben in das Feld »Steuerelementname« das »Katego-rien-Unterformular«. Nachdem Sie den Makro-Editor und das Formular »Kategorien« geschlossen und gespeichert haben, erstellen Sie eine neue Abfrage mit Hilfe des Abfrageassistenten, diesmal aber basierend auf der Tabelle »Artikel«. Übernehmen Sie sämtliche Felder in die Auswahl und schreiben Sie in die Zeile »Kriterium« des Feldes »Lieferanten-Nr« das Kriterium »[Formulare] | [Kategorien] | [Lieferant]«.

Speichern Sie diese Abfrage und öffnen Sie das Formular »Kategorien-Unterformular« in der Entwurfsansicht. In den Formulareigenschaften tragen Sie unter »Datenherkunft« die soeben erstellte Abfrage ein und speichern und schließen das Unterformular. Um die neue Verhaltensweise zu testen, öffnen Sie wieder das Formular »Kategorien« in der Normalansicht, wählen eine Kategorie und danach einen Lieferanten aus. Access aktualisiert die Daten des Unterformulars unmittelbar, nachdem Sie einen Lieferanten ausgewählt haben.