電子書籍の厳選無料作品が豊富!

質問失礼します。

フォームにコンボボックスAに連動したデータを絞り込みさせるコンボボックスBがあります、そしてBに連動したコンボボックスCあります。
一旦入力後は、コンボボックスAの値にかかわらずコンボボックスB、コンボボックスCに入力したデータを表示させるにはどうしたらよいでしょうか?


例として、次の3つのテーブルを基にデータベースを作成しております:

メインテーブル
フィールド名:
ID
区分名
商品名
単位
etc...

区分名テーブル
ID   区分ID 区分名   
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
1    1 木
2    2   金属

商品名テーブル
ID   商品名ID   商品名   区分ID 単位ID
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
1    1      杉 1 1
2    2      鉄 2 3
3    3      松 1 4
4    4      銅 1 2

単位テーブル
ID   単位ID   単位
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
1    1      メートル
2    2      グラム
3    3      キロ
4    4      フィート

メインテーブルを基にしてフォームを作成し、
「メイン」というフォーム名にして
「区分名」「商品名」「単位」をフィールドのコントロールをコンボボックスに変更しました。

「区分名」フィールドの値集合ソースを「区分名テーブル」から引き出し
SELECT [区分名テーブル].ID, [区分名テーブル].区分名 FROM 社名テーブル; 列数2 
で設定し、社名をコンボボックスで選択できるようにしました。

そして
「商品名」フィールドの値集合ソースを「商品名テーブル」から引き出し
値集合ソースに
SELECT T商品名.商品ID, T商品名.商品名, T商品名.区分ID FROM T商品名 WHERE (((T商品名.区分ID)=[forms]![F在庫入力sub]![区分コンボ])) ORDER BY T商品名.商品ID;
で設定し

「単位」フィールドの値集合ソースを「単位テーブル」から引き出し
値集合ソースに

SELECT T単位.単位ID, T単位.単位, T商品名.商品ID FROM T単位 INNER JOIN T商品名 ON T単位.単位ID = T商品名.単位ID WHERE (((T商品名.商品ID)=[forms]![F在庫入力sub]![商品名コンボ]));
で設定しました。


「区分名」フィールドの「更新後処理」で

Private Sub 区分コンボ_AfterUpdate()
Me.商品名コンボ.Requery
End Sub


「商品名」フィールドの「更新後処理」で

Private Sub 商品名コンボ_AfterUpdate()
Me.単位コンボ.Requery
End Sub

を設定しました。



「メイン」フォームをフォームビューで開き、「区分名」コンボボックスで「木」を選択すると
「商品名」コンボボックスで「杉」と「松」が表示されるので、「松」を選択します。
その後「松」を選択すると、「単位」コンボボックスで「フィート」が表示されるので「フィート」を選択します。

次のレコードに移り、「区分名」コンボボックスで「金属」を選択すると
「商品名」コンボボックスで「鉄」「銅」が表示されるので、「鉄」を選択します。

そこで、「金属」を入力した時点で、前のレコード(「木」「松」「フィート」)に戻ると
「商品名」「単位」欄が空欄で表示されます。
メインテーブルにはデータがあります。

データ入力時は選択した値に連動させたいのですが、

データ入力済みの場合は

入力済みのデータ(「木」「松」「フィート)がフォームに表示されるようにしたいのですが
どうすればよいでしょうか?

レコード移動時のイベントプロパティで表示させられるものはないか
調べたのですがなかなかうまくいきません。

ちなみにフォームはデータシート型です。
解決方法をご教授いただけないでしょうか?

よろしくお願いします。

A 回答 (1件)

コンボボックスB、コンボボックスCの


フォーカス取得時にRequeryで更新されませんか?
    • good
    • 0
この回答へのお礼

y504さん。いつも回答ありがとうございます。

フォーカス取得時に入れてみると見たいところをクリックすると見れるようになりました。
ありがとうございます。

ちなみにクリックせず入力したものを表示していくのはむずかしいのでしょうか?
新規レコードに移動した時に、今日打ち込んだものが一目でわかるように表示させたいのですが

なにか良い方法があれば教えていただきたいのですが。
お願いします。

お礼日時:2018/01/29 07:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!