コンボボックス1の選択項目をコンボボックス2のItemに反映するには?

解決


まさしく  2006-08-23 20:24:16  No: 132873

よろしくお願いします。
VB2005(EE)
SQLServer2005(EE)
XP Pro

Combobox1とCombobox2があり、
1には社員名を入れ、
2には1で選択した社員が受け持つ受注先を表示したいと思っています。

Serverのテーブルは
  社員テーブル            受注先テーブル
社員名  社員コード      社員コード    受注先
Aさん    001              001          丸店
Bさん    002              001          三角店
Cさん    003              002          四角店

Accessでは簡単にできてたので、がんばったのですが
限界に達しました。
助けて頂けると夜良く眠れそうです。よろしくお願いします。


大吉末吉  2006-08-24 21:06:46  No: 132874

まさしく  さん  こんにちは。

Accessは良く知らないので、
> Accessでは簡単にできてたので
どのくらい簡単だったのか、分かりませんが。

MSのHPを見ると、「Access 開発者向け VB プログラミング Tips」と言う、Tips集があり、そこに、

「コントロールの移植 (データ連結したリスト ボックス、コンボ ボックス)」
http://www.microsoft.com/japan/msdn/office/access/vbtips/control_ListBoxComboBox_Data/
とか
「コントロールの移植 (データソースに SQL を指定したコンボ ボックスやリスト ボックス) 

http://www.microsoft.com/japan/msdn/office/access/VBtips/Ctrl_ComboBoxListBox_SQL/
とかがありますけど・・・

このあたりは参考になりませんか?


ぢゃわ  2006-08-25 02:16:44  No: 132875

ACCESSでのフォーム開発はあまり詳しくないのですが、社員コンボで選択された社員の社員コードを抽出条件として受注先テーブルを取得し直しているのではないでしょうか?
少なくともこれと同じことをすれば機能は実現できると思います。

ただ、社員コンボ選択時に毎回受注先テーブルを読み直すという方法は、データの即時反映という面ではよいでしょうがレスポンスは悪そうな気がします。
データ量にもよるでしょうが、自分なら最初に一度マスタを全て読み込んで配列に格納しておく、という方法を取りそうです。

先の例でいえば、
================
Syain(1,1)="Aさん"
Syain(1,2)="Bさん"
Syain(1,3)="Cさん"

Syain(2,1)="001"
Syain(2,2)="002"
Syain(2,3)="003"

Juchu(1,1)="丸店"
Juchu(1,2)="三角店"
Juchu(1,3)="四角店"

Juchu(2,1)="001"
Juchu(2,2)="001"
Juchu(2,3)="002"
================
こんな感じで配列に格納しておき、社員コンボが変更されたときにJuchu配列をループで回し、同じ社員コードなら受注先コンボに追加、でよいかと思います。


まさしく  2006-08-25 16:38:01  No: 132876

大吉末吉 様  ありがとうございます。

教えていただいたリンクを参照したところ、やりたいとができました。
ここ最近ずっと悩んでいたので本当に助かりました。
ありがとうございました。

ぢゃわ 様  ありがとうございます。

実際にコードを書いて見ました。
しかし、扱うデータがかなり多量なものでぢゃわ様が仰られているとうり
レスポンスが悪いようです。データ量が少ない場合は使ってみようと思います。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加