※ ChatGPTを利用し、要約された質問です(原文:Access コンボボックスの絞り込み後の表示)
Access コンボボックスの絞り込み後の表示
2011/01/13 17:41
このQ&Aのポイント
Access2002を使用しております。コンボボックスAに連動したデータを絞り込みさせるコンボボックスBの値が変更されても、入力済みのデータが表示されるようにする方法を教えてください。
Access2002を使用しております。コンボボックスAに連動したデータを絞り込みさせるコンボボックスBの値が変更されても、入力されたデータが消える現象が発生しています。この問題を解決する方法を教えてください。
Access2002でコンボボックスAとBを連動させています。しかし、入力済みのデータを表示させるためにはフォームを2つ作成する必要がありますか?1つのフォームで解決する方法があれば教えてください。
Access2002を使用しております。
コンボボックスAに連動したデータを絞り込みさせるコンボボックスBがありますが、一旦入力後は、コンボボックスAの値にかかわらずコンボボックスBに入力したデータを表示させるにはどうしたらよいでしょうか?
例として、次の3つのテーブルを基にデータベースを作成しております:
メインテーブル
フィールド名:
ID
社名
担当者
社名テーブル
ID 社名 住所 etc...
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
1 A社
2 B社
担当者テーブル
ID 社名ID 担当者名 電話番号 etc...
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
1 1 木村
2 2 佐藤
3 1 田中
4 2 斎藤
メインテーブルを基にしてフォームを作成し、
「メイン」というフォーム名にして
「社名」「担当者」をフィールドのコントロールをコンボボックスに変更しました。
「社名」フィールドの値集合ソースを「社名テーブル」から引き出し
SELECT [社名テーブル].ID, [社名テーブル].社名 FROM 社名テーブル; 列数2
で設定し、社名をコンボボックスで選択できるようにしました。
そして
「担当者」フィールドの値集合ソースを「担当者テーブル」から引き出し
SELECT 担当者テーブル.ID, 担当者テーブル.担当者名, 担当者テーブル.社名 FROM 担当者テーブル WHERE (((担当者テーブル.社名)=forms!メイン.社名));
で設定しました。
「社名」フィールドの「更新後処理」で
Private Sub 社名_AfterUpdate()
Me!担当者.Requery
End Sub
を設定しました。
「メイン」フォームをフォームビューで開き、「社名」コンボボックスで「A社」を選択すると
「担当者」コンボボックスで「木村」と「田中」が表示されるので、「木村」を選択します。
次のレコードに移り、「社名」コンボボックスで「B社」を選択すると
「担当者」コンボボックスで「佐藤」「斎藤」が表示されるので、「佐藤」を選択します。
さて、「佐藤」を入力した時点で、前のレコード(「A社」「木村」を選択)に戻ると
「担当者」欄が空欄で表示されます。
メインテーブルには全てデータは入力されています。
データ入力時は「担当者」コンボボックスは「社名」コンボボックスで選択した値に連動させたいのですが、
このようにデータ入力済みの場合は
最初のコンボボックスの値にかかわらず(この場合は直近に選択した社名がA社・B社のいずれかであろうとも)
入力済みのデータ(「木村」「佐藤」)がフォームに表示されるようにしたいのですが
何か良い方法はないでしょうか?
出来れば入力専用と読み取り専用のフォームを2つ使用するのではなく、1つのフォームで事足りればありがたいのですが・・・
質問の原文を閉じる
質問の原文を表示する
お礼
bonaronさん、回答有難うございます。 アドバイス頂いた通りに記述を加えたら出来ました! AccessのVBAは「言われてみればその通り」の事が沢山あるのですが、実際にヒント無しで記述するとなるとなかなか出来ない事が多くて勉強になります。 昨日一日中悩んでいたことがすっきり解決できて感激です。有難うございました!