よろしくお願いします。
VB2005(EE)
SQLServer2005(EE)
XP Pro
Combobox1とCombobox2があり、
1には社員名を入れ、
2には1で選択した社員が受け持つ受注先を表示したいと思っています。
Serverのテーブルは
社員テーブル 受注先テーブル
社員名 社員コード 社員コード 受注先
Aさん 001 001 丸店
Bさん 002 001 三角店
Cさん 003 002 四角店
Accessでは簡単にできてたので、がんばったのですが
限界に達しました。
助けて頂けると夜良く眠れそうです。よろしくお願いします。
まさしく さん こんにちは。
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/)
とかがありますけど・・・
このあたりは参考になりませんか?
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配列をループで回し、同じ社員コードなら受注先コンボに追加、でよいかと思います。
大吉末吉 様 ありがとうございます。
教えていただいたリンクを参照したところ、やりたいとができました。
ここ最近ずっと悩んでいたので本当に助かりました。
ありがとうございました。
ぢゃわ 様 ありがとうございます。
実際にコードを書いて見ました。
しかし、扱うデータがかなり多量なものでぢゃわ様が仰られているとうり
レスポンスが悪いようです。データ量が少ない場合は使ってみようと思います。
ありがとうございました。
ツイート | ![]() |