Przede wszystkim upewnijmy się, że rozumiemy koncepcję „kaskadowych pudełek kombi”. Logika działa w taki sposób, że po dokonaniu wyboru z Combo1, opcje dostępne w Combo2 zmienią się tak, że będą to elementy związane tylko z Combo1. Podobnie, po wybraniu elementu z Combo2, elementy w Combo3 będą tylko elementami powiązanymi z tym, co użytkownik wybrał w Combo2.
Przede wszystkim więc każde pole kombi poza Combo1 powinno być puste lub powinno być powiązane z domyślną wartością Combo1. Możesz to zrobić w dowolny sposób.
Następnie w zdarzeniu AfterUpdate w Combo1 powinieneś mieć coś takiego:
Me.cboCombo2.RowSource = "SELECT MyFieldNames " & _
"FROM tblMyTable " & _
"WHERE SomeID = " & Nz(Me.cboCombo1) & _
"ORDER BY SomeValue"
Me.cboCombo2.Requery
Oczywiście, MyFieldNames, tblMyTable i wszystkie inne wartości będą zależeć od tego, czego faktycznie szukasz, nazwy tabeli/zapytania źródłowego i nazw pól itp.
OK, więc teraz Combo2 powinno wypełnić się danymi, które są istotne tylko dla tego, co wybrałeś w Combo1, ponieważ używamy Combo1 jako filtra w powyższym SQL.
Jeśli to wygląda dobrze, zrób mniej więcej to samo dla Combo3. Może być konieczne filtrowanie według wartości z obu kombinacji lub możesz uciec od użycia tej wartości w Combo2, w zależności od zestawu danych.
Namyj, spłucz, powtórz. Myślę, że będziesz musiał to zrobić 50 razy, jeśli masz 50 kombinacji, ale tak to się robi.
Więcej informacji można znaleźć w tym artykule:http://www.fmsinc .com/microsoftaccess/forms/combo-boxes/cascading.html