プロが教えるわが家の防犯対策術!

VB2005の質問です。
コンボボックスの表示を「番号:グループ番号:名前」として、値の取得を「番号」のみしたい場合、どのようにしたらよろしいでしょうか?

表示データと値の収納はSQLServer2005を利用しています。

ComboBox1.Items.ADD("番号" & ":" & "グループ番号" & ":" & "名前")
と今は書いています。

A 回答 (2件)

「:」でSplitして配列に格納して分解するか、


ComboBox1.Text.Substring(0, ComboBox1.Text.IndexOf(":"))
こんな感じですかね。

オリジナルのアイテム用のクラスを利用してもいいですね。

この回答への補足

回答ありがとうございます。

難しいですね(^^;

コンボボックスはデータセットとくっついていますので、連動とか考えると頭が痛いです。

一番いいのは、「データバインドモード」の「メンバの表示」項目が複数選択できればいいのですが……

ありがとうございました。

補足日時:2007/05/31 11:47
    • good
    • 0

カン違いな回答だったらごめんなさい。


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
こんな感じでいかがでしょうか。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

複数表示に関しては、SQL側で表示用の列をクエリー作る事で対処いたしました。(データセット内でも作れると気づいたのはさっき(汗)

アクセスのように、プロパティで表示操作できると思った次第でした。すいません。

お礼日時:2007/06/01 09:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!