まず、「カスケードコンボボックス」の背後にある概念を理解していることを確認しましょう。ロジックは、Combo1から選択した後、Combo2で使用可能なオプションが変更され、Combo1にのみ関連するアイテムになるように実行されます。同様に、Combo2からアイテムを選択すると、Combo3のアイテムは、ユーザーがCombo2で選択したものに関連するアイテムのみになります。
したがって、まず、Combo1以外のすべてのコンボボックスは空であるか、Combo1のデフォルト値に関連付けられている必要があります。どちらの方法でもできます。
次に、Combo1のAfterUpdateイベントでは、次のようになります。
Me.cboCombo2.RowSource = "SELECT MyFieldNames " & _
"FROM tblMyTable " & _
"WHERE SomeID = " & Nz(Me.cboCombo1) & _
"ORDER BY SomeValue"
Me.cboCombo2.Requery
明らかに、MyFieldNames、tblMyTable、およびその他すべての値は、実際に探しているもの、ソーステーブル/クエリ名、フィールド名などによって異なります...
これで、上記のSQLでCombo1をフィルターとして使用しているため、Combo2はCombo1で選択したものにのみ関連するデータでいっぱいになるはずです。
それで問題ないようであれば、Combo3に対してほぼ同じことを行います。データセットによっては、両方のコンボの値をフィルタリングする必要がある場合もあれば、Combo2でその値を使用するだけで解決できる場合もあります。
泡立てて、すすぎ、繰り返します。コンボが50個ある場合は、50回行う必要があると思いますが、それがその方法です。
詳細については、次の記事を参照してください: http://www.fmsinc .com / microsoftaccess / forms / combo-boxes / cascading.html