お世話になっております。
帳票タイプのサブフォームに配置したコンボボックスの、値集合ソースに使用しているマスターテーブルのレコードが膨大で、選択肢の中から目的のレコードを見つけるのが大変です。
マスターテーブル名:M_商品
テーブルのフィールド
1.商品ID(オートナンバー)
2.商品名(短いテキスト)
3.洋or和(短いテキスト)
4.生or焼(短いテキスト)
商品ID | 商品名 | 洋or和 | 生or焼 |
---|---|---|---|
1 | ショートケーキ | 洋菓子 | 生菓子 |
2 | ティラミス | 洋菓子 | 生菓子 |
3 | フィナンシェ | 洋菓子 | 焼菓子 |
4 | 八つ橋 | 和菓子 | 生菓子 |
5 | どら焼き | 和菓子 | 焼菓子 |
上記のようなマスターテーブルがあるとします。
メインフォームに配置したオプショングループ(opt_洋or和)のopt_和を選択すると、洋or和フィールドが"和菓子"のレコードだけが、コンボボックスの選択肢として表示される、といったことは可能でしょうか?
また、opt_和を選択した状態で、もうひとつのオプショングループ(opt_生or焼)のopt_生を選択すると、洋or和フィールドが"和菓子"で、かつ生or焼フィールドが"生菓子"のレコード(例のマスターテーブルだと八つ橋のみ)がコンボボックスの選択肢として表示される、といったことは可能でしょうか?
方法としては下記の2つが考えられます。
コンボボックスの値集合ソースのクエリ(SQL)にメインフォームのオプショングループを参照する抽出条件を設定する。
メインフォームのオプショングループの更新後処理でサブフォームのコンボボックスの値集合ソースのSQLを変更する。
オプションの選択肢が「洋or和」「生or焼」だけなら1.の方法がシンプルだと思います。
例
オプショングループ(opt_洋or和)
オプションボタン(opt_洋) オプション値: 1
オプションボタン(opt_和) オプション値: 2
オプショングループ(opt_生or焼)
オプションボタン(opt_生) オプション値: 1
オプションボタン(opt_焼) オプション値: 2
コンボボックスの値集合ソースの設定
メインフォームのオプショングループの更新後処理
サブフォームコントロール名、コンボボックス名は実際のものに変更
opt_生or焼 も同様に。
オプショングループの選択肢に全て(抽出しない)というのを追加するなら抽出条件が複雑になるので2.の方法をとりますね。
洋,和,全(抽出しない)
例
オプショングループ(opt_洋or和)
オプションボタン(opt_洋) オプション値: 1
オプションボタン(opt_和) オプション値: 2
オプションボタン(opt_全) オプション値: 3
オプショングループ(opt_生or焼)
オプションボタン(opt_生) オプション値: 1
オプションボタン(opt_焼) オプション値: 2
オプションボタン(opt_全) オプション値: 3
メインフォームのモジュール