sql >> データベース >  >> RDS >> Mysql

アクセスフォームカスケードコンボボックスは、ドロップダウンメニューに何も表示されません

    まず、「カスケードコンボボックス」の背後にある概念を理解していることを確認しましょう。ロジックは、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




    1. mysql_query()がSELECTステートメントでTRUEを返すのはなぜですか?

    2. MySQL RADIANS()関数–度からラジアンに変換

    3. 多対多の関連付けの結合テーブルにオプションはありますか?

    4. 日時列から日付を選択するにはどうすればよいですか?