• ベストアンサー

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

  • VB2005 ComboBoxの値の取得について

    VB入門者なのですがよろしくお願いします。 VB2005のComboBoxで、   ComboBox1.Items.Add("個人")   ComboBox1.Items.Add("クラス") ComboBox1.Items.Add("全体") これらの項目にそれぞれ値を取得させたいのですが、その方法がわかりません。 もしよろしければ、ご支援お願いします。

  • VB2008でコンボボックスのクリアについて

    VB2008でコンボボックスのクリアについて お世話になります。 コンボの設定を With ComboBox1 .Items.Clear() .Items.Add("a") .Items.Add("b") .SelectedIndex = 0 End With のようにしていた場合 ComboBox1.Items.Clear()を実行しても "a"の値がコンボに残るみたいなのですが、 指定の方法が悪いのでしょうか? .SelectedIndex = 0を指定しないと クリアされるみたいなのですが。 よろしくお願いいたします。

  • VB.net comboboxの操作で

    下記ソースでiiによってCombobox1の値を変更したいのですが 「ComboBox1.Text =」にすると ComboBox1_SelectedIndexChanged にかかれたプログラムが動いてしまいます。 ComboBox1_SelectedIndexChangedが動かずに ComboBox1に値設定する方法ないでしょうか。 ------------------------------------------------program ComboBox1.Items.Add("みかん") ComboBox1.Items.Add("りんご") ComboBox1.Items.Add("すいか") if ii=1 then ComboBox1.Text = "みかん" if ii=2 then ComboBox1.Text = "りんご" if ii=3 then ComboBox1.Text = "すいか" 環境 VB 2008 express OS Windows XP

  • コンボボックスに日付を表示する

    現在、VB.netを勉強中です。 コンボボックス内に今日から一週間分の日付を表示したいのですが、上手く行きません。 Dim dtToday As DateTime = DateTime.Today ComboBox1.Items.Add(dtToday.ToString()) と書いたところ現在の日付を取得しコンボボックス内に 2013/5/28 00:00 と表示されています。 これを時刻を表示させず(2013/5/28 のみ表示)、For文を用いて一週間分表示させたのですが、どのようにすればよいでしょうか? 分かる方がいれば、よろしくお願いします。

  • VB.NET2003のDataGridでコンボボックス

    こんにちは。 最近VB.NET(2003)を始めたばかりの初心者です。 DataGridにコンボボックスを作成する方法を探してまして、 http://dobon.net/vb/dotnet/datagrid/datagridcombobox.html に書いてあるようにDataGridTextBoxColumnクラスからの派生クラスを作成して呼び出してみました。 そうしたところ、コンボボックスが表示され、データのセットもきちんとできました。 しかし、そのコンボボックスで選択している値を取得する方法がわからなく困ってます。 たとえば Dim comboSorce As New DataTable("ComboBox") comboSorce.Columns.Add("DisplayMember", GetType(String)) comboSorce.Columns.Add("ValueMember", GetType(Integer)) comboSorce.Rows.Add(New Object() {"OK", 0}) comboSorce.Rows.Add(New Object() {"NG", 1}) というデータをコンボボックスにセットした場合 OK,NGという表示上の値は CStr(DataGrid1(row,col)) で取得できますが、実際の値を取得する方法がわかりません。 ご存知の方いらっしゃいましたら、ご教授ください。 それと、行毎に違う値(リストデータ)のコンボボックスを作成することはできますでしょうか? 以上です。よろしくお願いします。

  • VisualBasic2010のコンボボックス

    VisualBasic2010のコンボボックスに関して質問です。 With ComboBox1   .Items.add("項目1")   .Items.add("項目2") End With のように、自身で項目を追加するのではなく、 ユーザのフォルダ配置情報を取得してコンボボックスに表示させるには、 どのようにすればよろしいでしょうか。 イメージとしては、WindowsXPで画像等を保存する場合にでる保存ダイアログ。 あれのコンボボックスのような感じです。

  • ComboBoxのItem追加

    VB.NETでの開発初心者です。 ComboBoxのItem追加について、1行づつ追加していくのは理解できているのですが、HTMLでのListBox「OPTIONS設定」の様にArrayListにて一括追加する方法がわかりません。 ご存知の方、よろしくお願いします。  <1行づつ追加>  Me.ComboBox1.Items.Clear()  Me.ComboBox1.Items.Add(New ComboItems(Key値, 表示値))    ※ComboItemsクラスは、別途作成 <一括追加>  Dim comboArray As New ArrayList  comboArray.Add(New ComboItems(Key値, 表示値))  Me.ComboBox1.Items.???(comboArray) ← ここがわからない  

  • ComboBoxについて

    ComboBoxのアイテムリストからアイテムを選んだら 選んだアイテムに対応した別の文字列 をComboboxに表示したいと思います。 動き的には Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  ComboBox1.Text = ""  ComboBox1.Items.Add("000")  ComboBox1.Items.Add("001")  ComboBox2.Text = ""  ComboBox2.Items.Add("0個目")  ComboBox2.Items.Add("1個目")  ComboBox2.Visible = False End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged  Select Case ComboBox1.SelectedIndex   Case 0    ComboBox1.Visible = False    ComboBox2.Visible = True    ComboBox2.SelectedIndex = 0   Case 1    ComboBox1.Visible = False    ComboBox2.Visible = True    ComboBox2.SelectedIndex = 1  End Select End Sub Private Sub ComboBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.GotFocus  ComboBox1.Visible = True  ComboBox1.DroppedDown = True  ComboBox2.Visible = False End Sub こんな感じで、ComboBoxを二つ使えば実現できるのですが一つだけでも実現できる方法が ありましたら、教えてくださいませ。

  • キューとコンボボックスの使い方  VB2008

    VB2008を使っています。 キューとコンボボックスの使い方がわからないのですが、以下のソースで (1)キューとデータソースを使う。 Dim queue As Queue = New Queue(20) For i As Integer = 0 to 9 queue.Enqueue( i.ToString() ) Next i ComboBox1.DataSource = queue.ToArray ComboBox2.DataSource = queue.ToArray (2)べたな方法 ComboBox1.Items.Clear() For i As Integer = 0 to 9 ComboBox1.Items.Add( i.ToString() ) Next i ComboBox2.Items.Clear() For i As Integer = 0 to 9 ComboBox2.Items.Add( i.ToString() ) Next i ------------------------ (1) (1)と(2)は厳密にどのように違うのでしょうか? (2) (1)で心配なのは、キューの上限を20にしていて、実際使っているのは10個で後は空です。 この状態で、コンボボックスのDataSourceにセットした場合、(2)と同じように10件だけになっているのでしょうか? (3) (1)は同じキューを使いまわしています。コンボボックス1と2は独立して使えるのでしょうか?(データは同じです。)

  • DataGridViewのComboBoxについて

    お世話になります。 現在、VB2008にて、 csvファイルの内容をDataGridViewに書き込むという プログラムの作成をしているのですが、 csvの中身を書き込むという作業はできるのですが、 ComboBoxの列のみ、値が書き込まれません。 csvの値は、DataGridViewのComboBoxのリストと同じ値を 入力しており、リスト以外の値が入力されている ということはありません。 Dim Items() As String '一行を, (カンマ)で区切って項目ごとに分解 Items = Line.Split(",") For n = 0 To Items.Length - 1 If Items(n).Replace("""", "") = Nothing Then Items(n) = "0" End If Next n 上記のコードで、 Items()という変数に、csvの値を格納し、 DataGridVIew1.Rows(0).Cells(0).Value = Items(0) という形で値を格納していますが、 どうしてもComboBoxの列のみ変化がありません。 どなたか、解決策もしくはComboBox列などに関する 情報などをご教授願えないでしょうか、 よろしくお願いします。