三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


広告:


[記事一覧、バックナンバーを見る]

XXXXさんへ Accessで2つのコンボボックスを連動?させるには?

>テーブルに仕入先   仕入先ID 仕入先名
>       担当者   担当者ID 担当者名  仕入先ID 
>があります。
>
>フォームに仕入先と担当者を選択するコンポボックスがあります。
>
>やりたいことは仕入先名をコンポボックスから選択したら、
>担当者の方は仕入先名と同じ会社の担当者のみ表示したい。
>
>いまだと全部の仕入先の担当者が表示されてしまいます。
>
>その方法を教えてください。

やりたいことは、
コンボボックスを2つ作り、
第1 上のコンボボックスで選択されたグループだけを
第2 下のコンボボックスで選択する、
絞り込みながらの選択ですね。

たとえが いいか/適切か わかりませんが、
AKB48のメンバーをテストデータにして、
絞り込みのコンボボックスの練習をしてみたいと思います。

第1 上のコンボボックスで グループを選択する
第2 下のコンボボックスで上記グループのメンバーのみ表示する

現物を動かしながら が わかりやすいと思うので
http://www.ken3.org/vba/zip/qa0720db.zip
を保存して、遊んでみてください。

そのまま、二つのコンボボックスを作成してみた

まずは、何も処理を入れないで、通常の方法でコンボボックスをします。

Accessのフォーム処理で、ウィザードでフォームをざっくり作ります。
その後、マスターを参照したいので、
テキストボックスをコントロールの変更でコンボボックスに変更します。
コンボボックスの値を クエリービルダーを使用して、
マスターテーブルと連動させます。

そんな下準備の操作動画 http://www.youtube.com/watch?v=v5tvuWjfqRI です

↑準備で時間がかかりすぎてるけど、、、

やっと、連動処理を入れてみる

ここで、やっと、
Accessのフォーム処理で、
コンボボックス2つを使って、
マスターデータを絞り込む そんな処理をざっくり作ります。

1つ目でグループを選択、
2つ目のコンボボックスは1の値を利用してデータを絞る、そんな処理です。

ポイントは、クエリービルダーを使用して、画面の値とテーブルを連動させます。

1の値が [Forms]![メモinput]![課ID] なので、これを条件に入れる(指定します)
たったこれだけなのですが、
データは生き物?じゃないけど、各処理のタイミングでデータを絞り込んだり、クリアしたりします。

そのために、コードを2つ入れます。

再クエリー .Requery でデータを再度絞り込む
1.コンボボックス2に入ってきたときに、再クエリー処理で、データをきれいにします。
単純に のイベント フォーカス取得時の _Enterにコードを書きます。

Private Sub 担当者ID_Enter()
    Me.担当者ID.Requery  '再クエリー更新
End Sub

Me.担当者ID.Requery 自分自身に対して、再クエリーをかけて、1で選択されたグループのみにデータを絞り込みます。

グループが変更されたら、下のコンボボックスをクリアする

2.上のグループが選択(変更)されたら、2つ目メンバーをクリアーしたいので(グループが変わったので再選択させたい)

単純に更新後の処理 _AfterUpdate で 下のコンボボックスの値を消しただけです。

Private Sub 課ID_AfterUpdate()
    Me.担当者ID.Value = ""  'グループが変更されたらクリア
End Sub

これで、それなりに動くと思います。

試行錯誤の動画、操作・テスト結果は http://www.youtube.com/watch?v=bdrtLlkE-lw を見てください

↑前半、調整に手間取り、後半かけ足で説明してますがよろしくです。

終わりの挨拶

現物を動かしながらがわかりやすいと思うので
http://www.ken3.org/vba/zip/qa0720db.zip
を保存して、遊んでみてください。

コンボボックス2つの連動処理の参考となれば、、、うれしいです。

三流プログラマー Ken3




三流君へ メッセージを送る

全ての質問に答えることはできませんが、
ダメもとで、気軽に質問、感想、メッセージを送ってくださいね・・・

感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)
例:[XXXXさんへ回答例]←みたいに回答していたり...


Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。
・[Excel/Access VBA]の解説
・[ASP(Active Server Pages)]の解説。
・[元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
・[プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
三流君を踏み台にする
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。

三流解説動画の再生リスト
https://www.youtube.com/user/ken3video/playlists

本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)