- ベストアンサー
Accessのフォーム その2
すいません、以前にも同じ質問をしたのですが、私の質問の仕方が悪くてうまくいきませんでした。 回答してくださった方、ありがとうございました! もう一度、詳しく質問しなおします。 顧客データを登録しているのですが、テーブルを元に登録フォームを作成しました。 商品がたくさんあって、4つのコードに分かれています。フォームの中に[A][B][C][D]と4つのコンボボックスを作成し、絞込み検索ができるようにはしました。 しかし、選んだデータの[A]しかテーブルに表示されません。例えば[A]のコンボボックスの中から[1010]を選択、[B]のコンボボックスから選択しようとしても空っぽです。 テーブルを見ると、[A]で選んだ[1010]だけが表示されています。 非連結のときはうまく出てたんですが・・。 もしかして連結列が間違ってるのでしょうか?? 元になるテーブルは Aコード A Bコード B Aコード Cコード C Bコード Dコード D Cコード この2列目を表示したいのです。(2列目が[1010]など表示したいデータ) 列数はそれぞれ「2」で連結列は「2」です。 更新後処理は以下の通りです。 Private Sub コンボ0_AfterUpdate() Me!コンボ2.Requery End Sub Private Sub コンボ2_AfterUpdate() Me!コンボ4.Requery End Sub Private Sub コンボ4_AfterUpdate() Me!コンボ6.Requery End Sub ぜひよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じではどうでしょうか、 ○単価表テーブル名:販売単価表(項目:販売先コード、品名、サイズ、単価) ○データ登録テーブル名:納入データ(項目:販売先コード、品名、サイズ、単価、etc。このソース類には出てきませんが明確にするために書いておきます。) ○フォーム名:納入登録 連結テーブル:納入データ 販売先コード(コンボボックス)値集合ソース: SELECT 販売単価表.販売先コード FROM 販売単価表 GROUP BY 販売単価表.販売先コード; 品名(コンボボックス)値集合ソース:SELECT 販売単価表.品名 FROM 販売単価表 GROUP BY 販売単価表.品名, 販売単価表.販売先コード HAVING (((販売単価表.販売先コード)=[Forms]![納入登録]![販売先コード])); サイズ(コンボボックス)値集合ソース:SELECT 販売単価表.サイズ, 販売単価表.単価 FROM 販売単価表 GROUP BY 販売単価表.サイズ, 販売単価表.単価, 販売単価表.販売先コード, 販売単価表.品名 HAVING (((販売単価表.販売先コード)=[Forms]![納入登録]![販売先コード]) AND ((販売単価表.品名)=[Forms]![納入登録]![品名])); 単価(テキストボックス):イベント Private Sub サイズ_AfterUpdate() 単価 = サイズ.Column(1) End Sub 販売先コード、品名はカラム数を1 サイズはカラム数を2にしてください。 サイズ.column(1)でサイズコンボボックスで表示される2つめの項目の値を呼び出します。 サイズコンボボックスを変更した際に単価テキストボックスに該当する単価を代入します。 ○各コンボボックスの値集合ソースは表示の都合上SQL文でかいてありますが、そのままコピーしてクエリーとしてみていただければシンプルなのでわかると思います。 がんばってみてください。
その他の回答 (1)
- tonjiru
- ベストアンサー率37% (63/168)
前の質問を拝見していないのですが、 コンボボックスの絞込みをしたい、ということでしょうか? コンボボックスの値集合ソースを表示していただかないとお答えしようがありませんが・・・ 参考URLで解決できませんか?
補足
おっしゃるとおりです・・・すみません・・。 Aのコンボボックスの値集合ソース Aコード(入力用) Bの値集合ソース SELECT [Bコード(入力用)].[Bコード], [Bコード(入力用)].[B], [Bコード(入力用)].[Aコード] FROM Bコード(入力用) WHERE ((([Bコード(入力用)].[Aコード])=[forms]![ベリ入力用]![コンボ0])) Cの値集合ソース SELECT Cコード(入力用)].[Cコード(入力用)].[C], [Cコード(入力用)].[Bコード] FROM Cコード(入力用) WHERE ((([Cコード(入力用)].[Bコード])=[forms]![ベリ入力用]![コンボ2])); Dの値集合ソース SELECT [Dコード(入力用)].[Dコード], [Dコード(入力用)].[D], [Dコード(入力用)].[Cコード] FROM Dコード(入力用) WHERE ((([Dコード(入力用)].[Cコード])=[forms]![ベリ入力用]![コンボ4])); 最初はうまく絞り込みができてたのですが、急にできなくなりました。
お礼
返事が遅くなりました。 出来ました~!! ほんっとにありがとうございました!! 助かりました!! また質問した際にはよろしくお願いします。
補足
keikanさん、前回に続きありがとうございます!! これからやってみて、また報告します。 ほんとにありがとうございます。