- ベストアンサー
ComboBoxの表示
VB2005の質問です。 コンボボックスの表示を「番号:グループ番号:名前」として、値の取得を「番号」のみしたい場合、どのようにしたらよろしいでしょうか? 表示データと値の収納はSQLServer2005を利用しています。 ComboBox1.Items.ADD("番号" & ":" & "グループ番号" & ":" & "名前") と今は書いています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「:」でSplitして配列に格納して分解するか、 ComboBox1.Text.Substring(0, ComboBox1.Text.IndexOf(":")) こんな感じですかね。 オリジナルのアイテム用のクラスを利用してもいいですね。
その他の回答 (1)
- wingtodo
- ベストアンサー率56% (9/16)
カン違いな回答だったらごめんなさい。 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 こんな感じでいかがでしょうか。
お礼
ご返答ありがとうございます。 複数表示に関しては、SQL側で表示用の列をクエリー作る事で対処いたしました。(データセット内でも作れると気づいたのはさっき(汗) アクセスのように、プロパティで表示操作できると思った次第でした。すいません。
補足
回答ありがとうございます。 難しいですね(^^; コンボボックスはデータセットとくっついていますので、連動とか考えると頭が痛いです。 一番いいのは、「データバインドモード」の「メンバの表示」項目が複数選択できればいいのですが…… ありがとうございました。