Hi
Nehmen wir mal als Beispiel an, du hast drei Tabellen Hauptgruppe, Gruppe, Untergruppe.
Hauptgruppe:
HG_ID, HB_BEZEICHNUNG
Gruppe:
GR_ID, GR_BEZEICHNUNG, HG_ID (die ID der zugehörenden Hauptgruppe)
Untergruppe:
UG_ID, UG_BEZEICHUNG, GR_ID (die ID der zugehörenden Gruppe)
Für jede dieser Tabellen hast du eine Query und eine Datasource. Für die Hauptgruppe sieht die Query (Query1/Source1) so aus:
Quelltext
1:
| SELECT * from HAUPTGRUPPE |
Wenn du das einer DBLookupCombo als Listsource zuordnest, bekommst du die Einträge der Hautpgruppe. KeyField ist die eindeutige ID der Hauptgruppe: HG_ID.
Die Query für die Tabelle Gruppe (Query2/Source2) sieht so aus:
Quelltext
1:
| Select * from GRUPPE where HG_ID = :HG_ID |
Es sollen also alle Gruppen der gewählten Hauptgruppe angezeigt werden. Der aktuelle Wert stammt aus dem gewählten Eintrag der LookupCombo. Und das geht ganz automatisch wenn du der Eigenschaft
DataSource von Query2 die Source1 zuordnest. Jedesmal wenn ein Eintrag aus der ersten Combo ausgewählt wird, wird der keyValue an die zweite Abfrage übergeben und entsprechend aktualisiert. Wenn du die zweite Abfrage ebenfalls in einer LookupCombo anzeigst, hast du das Dateil zum Master.
Analog dazu funktionert Query3/Source3
Quelltext
1:
| Select * from UNTERGRUPPE where GR_ID = :GR_ID |
Query3 bekommt in der Eigenschaft Datasource Source2. Das Feld GR_ID wird somit abhängig von dem ausgewählten Eintrag in Query2. Und so könnte man das weiter führen.
Ich hoffe mal, das war einigermassen verständlich erklärt, aber wenn man das mal durchschaut hat, ist das ganz Easy.
Gruss Lothar
Der BH ist für die Brust, der Plan ist für'n Ar...