Nejprve se ujistěte, že rozumíme konceptu „kaskádových kombinovaných boxů“. Logika běží tak, že po provedení výběru z Combo1 se možnosti dostupné v Combo2 změní tak, že se jedná pouze o položky související s Combo1. Podobně poté, co vybereme položku z Combo2, budou položky v Combo3 pouze položky související s tím, co uživatel vybral v Combo2.
Za prvé, každé pole se seznamem kromě Combo1 by mělo být prázdné nebo by mělo souviset s výchozí hodnotou Combo1. Můžete to udělat tak či tak.
Dále v události AfterUpdate Combo1 byste měli mít něco takového:
Me.cboCombo2.RowSource = "SELECT MyFieldNames " & _
"FROM tblMyTable " & _
"WHERE SomeID = " & Nz(Me.cboCombo1) & _
"ORDER BY SomeValue"
Me.cboCombo2.Requery
Je zřejmé, že MyFieldNames, tblMyTable a všechny tyto další hodnoty budou záviset na tom, co skutečně hledáte, na názvu vaší zdrojové tabulky/dotazu a názvech polí atd...
Dobře, takže nyní by se Combo2 mělo naplnit daty, která jsou relevantní pouze pro to, co jste vybrali v Combo1, protože používáme Combo1 jako filtr ve výše uvedeném SQL.
Pokud to vypadá dobře, udělejte víceméně přesně to samé pro Combo3. Možná budete muset filtrovat hodnoty z obou kombinací, nebo vám může stačit použití této hodnoty v Combo2, v závislosti na vaší datové sadě.
Napěňte, opláchněte, opakujte. Předpokládám, že to budete muset udělat 50krát, pokud máte 50 komb, ale tak se to dělá.
Další informace naleznete v tomto článku:http://www.fmsinc .com/microsoftaccess/forms/combo-boxes/cascading.html