• ベストアンサー

ComboBoxの表示

VB2005の質問です。 コンボボックスの表示を「番号:グループ番号:名前」として、値の取得を「番号」のみしたい場合、どのようにしたらよろしいでしょうか? 表示データと値の収納はSQLServer2005を利用しています。 ComboBox1.Items.ADD("番号" & ":" & "グループ番号" & ":" & "名前") と今は書いています。

質問者が選んだベストアンサー

  • ベストアンサー
  • unamana19
  • ベストアンサー率62% (56/89)
回答No.1

「:」でSplitして配列に格納して分解するか、 ComboBox1.Text.Substring(0, ComboBox1.Text.IndexOf(":")) こんな感じですかね。 オリジナルのアイテム用のクラスを利用してもいいですね。

gonta_256
質問者

補足

回答ありがとうございます。 難しいですね(^^; コンボボックスはデータセットとくっついていますので、連動とか考えると頭が痛いです。 一番いいのは、「データバインドモード」の「メンバの表示」項目が複数選択できればいいのですが…… ありがとうございました。

その他の回答 (1)

  • wingtodo
  • ベストアンサー率56% (9/16)
回答No.2

カン違いな回答だったらごめんなさい。 Connection名は既にOpenしていると仮定して Dim strSQL As String = "SELECT 番号, グループ番号 + ':' + 名前 AS [新しい名前] FROM [テーブル名] " Dim Da As Data.SqlClient.SqlDataAdapter Dim Ds As DataSet Dim Row As DataRow Da = New Data.SqlClient.SqlDataAdapter(strSQL, Connection名) Ds = New DataSet("データセット名") Da.Fill(Ds, "データセット名") With ComboBox1 .DataSource = Ds.Tables(0) .DisplayMember = "新しい名前" .ValueMember = "番号" End With とComboBox1にセットしておいて 値を取り出すときに dim int番号 AS Integer = ComboBox1.SelectedValue こんな感じでいかがでしょうか。

gonta_256
質問者

お礼

ご返答ありがとうございます。 複数表示に関しては、SQL側で表示用の列をクエリー作る事で対処いたしました。(データセット内でも作れると気づいたのはさっき(汗) アクセスのように、プロパティで表示操作できると思った次第でした。すいません。

関連するQ&A

専門家に質問してみよう