DOBON.NET DOBON.NETプログラミング掲示板過去ログ

3つのComboBox

  • 題名: 3つのComboBox
  • 著者: WON
  • 日時: 2007/09/05 10:45:48
  • ID: 20411
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
分類:[.NET]

 おはようございます。

VB2005+SQLserver2005にて

3つのComboBoxにSQLserverのデータをセットし表示するのですが
テーブルは1つでキー(KMK1)となる値が例えばAをComboBoxの1に表示
BをComboBoxの2に表示
CをComboBoxの3に表示するとした場合

SELECT KMK1,KMK2,KMK3 FROM TBLのSQLコマンドを実行し
DataSetを取得しますが、1回の取得で
その後3つのComboBoxのDataSourceにセットしたいのですが

DisplayMemberがKMK2でValueMemberがKMK3です。

DataSet.Tables(0)をDataSourceにセットするのではなく
KMK1がA,B,CをそれぞれのComboBoxのDataSourceにセットする方法を
教えて下さい。

宜しくお願いします。
SELECT KMK1,KMK2,KMK3 FROM TBL WHERE KMK1 = 'A'
のようにそれぞれのComboBox用のテーブルを作ればよいのでは?
まどかさん、ありがとうございます。

そういう方法もあるかと思いますが
一度にA,B,Cを取得し、別けたいのです。

Findをつかうのでしょうか?
> そういう方法もあるかと思いますが
> 一度にA,B,Cを取得し、別けたいのです。

DataSourceへはオブジェクトの参照を設定します。>3つのComboBoxすべてが同じオブジェクトを参照することになります。
オブジェクトがひとつであれば"同時に"異なる動きは出来ません。
したがってオブジェクト側での方法は無いことになります。
となると、ComboBox側でできないかということになりますが、出来ないと思います。

物理的なアクセスを1回にしたいなら、求めたテーブルを元に3つのテーブルを作成すればよいのではないでしょうか。
#サンプルはMSDNかネットで。m(_ _)m
DataViewでRowFilterをしたものをDataSourceに
設定するとかはどうでしょう?


Dim dv As DataView = ds.Tables(0).Copy.DefaultView
dv.RowFilter = "KMK1 = 'A'"
Me.ComboBox1.DataSource = dv
Me.ComboBox1.DisplayMember = "KMK1"
  • 題名: Re[5]: 3つのComboBox
  • 著者: WON
  • 日時: 2007/09/05 18:48:07
  • ID: 20424
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
解りました。ありがとうございます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板