• 締切済み

VB6.0で データベースの値をコンボボックスに取り込む方法

VB6.0で データベースの値をコンボボックスに取り込む方法ですが、 普通にCombobox.additem = rs.fields(列名).value だったかな? これで、セットした場合 レコードが5件あったら最初の1件しか取得できませんよね?whileでまわして取得すればいいのでしょうか?←どう記述すればいいのか・・。 また、他にいい方法ないでしょうか?一気にセットできる方法など。 よろしくお願いします。

noname#209802
noname#209802

みんなの回答

回答No.1

標準のコンボボックスなら、やはり Do Until rs.EOF Combobox.AddItem rs.Fields(列名).Value rs.MoveNext Loop と言う感じですね。 [プロジェクト] メニュー → [コンポーネント]で Microsoft Data Bound List Controls 6.0 を追加すると Dataコンボが利用できます。 詳細はヘルプの [Visual Studio 6.0 ドキュメント] └[Visual Basic ドキュメント]  └[Visual Basic の使用方法]   └[プログラミング ガイド]    └[Visual Basic を使ってできること]     └[Visual Basic の標準コントロールの使用]      └[データ コンボ コントロールおよびデータ リスト コントロールの使用]       ├[データ コンボ コントロールとデータ リスト コントロールを使用した 2 つのテーブルのリンク]       └[簡単なデータ コンボ アプリケーションの作成] を参照してみてください。

noname#209802
質問者

補足

無事取り込めたのですが、 Comboboxの中にA B C とあったとします。 DBの項目を表示するときに 内容がBとして comboboxの表示をBにしたい場合、Addしたら、項目が1個増えて A B C B ってなってしまいます・・。当たり前ですが・・。 どうすれば B を選択できるでしょうか? index でまわすしかないでしょうか?

関連するQ&A

  • 【VB】コンボボックスにデータベースから取り出した値を入れたい

    VB2005です。 表題の通りですがやり方がよくわかりません。 データベースに接続し、 SQLで重複しない値を取り出すところまではできています。 SQL=SELECT DISTINCT FieldName FROM TableName VB6の時はこんなソースでした Do Until rs.EOF    Combo1.AddItem.Fields("FieldName")    rs.MoveNext Loop VB2005ではどう書くのでしょう? よろしくご教授ください。

  • コンボボックスのクリア方法について教えて下さい(vb6.5)

    コンボボックスのクリア方法について教えて下さい(vb6.5) ComboBox1で選択したものによって、 ComboBox2で表示するものを変えたいと思っています。 ただ、一度ComboBox1で選択した後にComboBox2を開くと、 ComboBox2は前回のものがどんどん足されていきます。 コンボボックスのクリア方法について、 どの様にすればよいかご教示のほど、 宜しくお願い致します。 Private Sub ComboBox1_Change() UserForm1.ComboBox2.RemoveItem (0) If ComboBox1.Text = 1 Then UserForm1.ComboBox2.AddItem "A" UserForm1.ComboBox2.AddItem "B" UserForm1.ComboBox2.AddItem "C" ElseIf ComboBox1.Text = 2 Then UserForm1.ComboBox2.AddItem "D" UserForm1.ComboBox2.AddItem "E" UserForm1.ComboBox2.AddItem "F" Else UserForm1.ComboBox2.AddItem "G" UserForm1.ComboBox2.AddItem "H" UserForm1.ComboBox2.AddItem "I" End If End Sub -------------------------------------- Private Sub UserForm_Initialize() UserForm1.ComboBox1.AddItem "1" UserForm1.ComboBox1.AddItem "2" UserForm1.ComboBox1.AddItem "3" End Sub

  • コンボボックスにて複数列の値を使う方法

    VB.NET2008にて開発中です。 下記のように、コンボボックスのDataSourceにデータベースから取得した3列のDataTableを設定した場合、3列目の値を取得する方法を教えてください。  ComboBox.DataSource = DataTable  ComboBox.DisplayMember = "1列目"  ComboBox.ValueMember = "2列目"  1列目の取得・・・ComboBox.SelectedValue  2列目の取得・・・ComboBox.Text  3列目の取得・・・ComboBox.??? 表示の必要は無く、コンボボックスで選択したアイテムに関連する値を使いたいだけです。 よろしくお願いします。

  • コンボボックス

    VB6.0で開発しています。 ACCESSのm_名前というテーブルから取ってきています。 rst.Source = "m_名前" コンボボックスでなのですが2列表示したいのです。 今は Combo1.AddItem rs.Fields("番号") で 1列だけ表示しているのですが これを 番号  名前 1    あいう 2    かきく 3    さしす としたいのですが どうすればいいでしょうか。

  • vbデータベースのコンボボックスの連動

    お世話様です。 VBでデータベースを作っています。 Accessのテーブルからコンボボックスで、レコードを 読み込んでるのですが、1つ目のコンボボックスで 選択した際に、他のコンボボックスも連動するようにするにはどうすればいいでしょうか?? たとえば  コンボボックスであるレコードを選択。 他のコンボボックスでは、先のコンボボックス で絞り込まれたレコードのみ選択できるようにする。 それに伴い他のフィールドも連動するということです。 どうぞよろしくお願いいたします。

  • DBカラムをコンボボックスに設定する方法

    VB初心者ですみませんが、どなたか教えてください。 以下のようにADOにてDBのカラムからデータを取得し、コンボボックスに設定をしたいのですが、よくわかりません。 コンボボックスのはじめに空白→DBの項目を設定→最後に”なし”を設定したいのですが、教えてください。 Dim adors As New ADODB.Recordset adors.Open "SELECT A_FIELD FROM TABLE",・・・・ If adors.RecordCount <> 0 Then ComboBOX.AddItem ("") 'コンボボックスのはじめに空白を設定 Set ComboBOX.RowSource = adors ComboBOX.MatchEntry = dblExtendedMatching ComboBOX.ListField = "A_FIELD" ComboBOX.AddItem ("なし") 'コンボボックスの終わりにに’なし’を設定 End If

  • コンボボックスの値取得について

    テーブルはAccess2003で作成 VBは6を使用しています。 Access2003で作成したテーブル(t_KEN)の県名をコンボボックス(cmbKen)に表示させ、選択したひとつの県名とその県コードを テキストボックス(txtKENMEI.text、txtKenCode.text)に格納したいと思います。 以下の様にコンボボックスに県名を表示する所までは できたのですが、そこから選択した県名と県コードをそれぞれの テキストボックスに格納する所がわかりません。 初歩的過ぎるのかもしれませんが、初心者であり何卒ご教授頂けます様 お願いいたします。 テーブル(t_KEN) KENCODE KENMEI 1 北海道 2 青森県 3 岩手県 4 秋田県 ・  ・ ・  ・ ・  ・ Private Sub cmbKen_GotFocus() Dim DB As Database Dim RS As Recordset Set DB = OpenDatabase("c:\TEST\jdb.mdb") Set RS = DB.OpenRecordset("t_KEN") Do Until RS.EOF Me.cmbKen.AddItem RS.Fields("KENMEI") RS.MoveNext Loop 'ここ以降の記述が困ってます。 txtKENMEI.Text=・・・ txtKenCode.Text=・・・ RS.Close Set RS = Nothing DB.Close Set DB = Nothing End Sub

  • Excel:VBAでコンボボックスを活用する方法

    はじめまして。Excel2000でアンケートシートを作りたいと思っています。 その回答をコンボボックスから選ぶようにしたいのですが、「違う質問だけど同じ選択肢」というのがたくさんあるので簡潔にしたいのです。 このサイト等ネットで調べるとコントロールに変数を持たせる方法として Control(ComboBox & i)とか Me(ComboBox & i) というのを目にしましたが、どちらもこの状態には該当しないのかうまくいきませんでした。 コンボボックスごとにソースを作るしかないのでしょうか? 理想としてはforループでコンボボックスの回数だけ回して、if文でComboBox1と3と4と7には○○○、2と5と6には△△△を表示するようにできたらいいなぁと思っています。 (あくまで理想のソースです。) For i = 1 To 30 If i = 1 Or 3 Or 4 Or 7 Then With ComboBox & i(←ここが知りたいです☆) .Clear .AddItem "非常に重要" .AddItem "重要" .AddItem "少し重要" .AddItem "重要ではない" End With ElseIf i = 2 Or 5 Or 6 Then With ComboBox & i(←ここが知りたいです☆) .Clear .AddItem "はい" .AddItem "いいえ" End With End If Next i いかがでしょうか?☆部分をどうにかすることで解決するのでしょうか?他に方法があったらぜひご教示ください。 そもそもコンボボックスの作り方にも自信がありません。 以前に少しだけVBを経験してますが、ほぼ初心者です。 よろしくお願い致します。

  • ACCESSを用いたデータベースでのコンボボックスの連動について

    おせわになっております。 VBでデータベースを作っているのですが、 コンボボックスでの検索での絞込みがうまくいきません。 例えば、コンボボックス1で選ばれたファールドにより 絞込みが行われ、コンボボックス2で表示するレコードは コンボボックス1で選択されたレコードに該当するものしか表示しないようにするというとです。 どこかおかしい個所はありますでしょうか?? よろしくお願い致します。 Private Sub dbc1_Click(Area As Integer) '1つめのコンボボックス Dim criteria As String ' 検索条件 If dbc1.Text = "" Then Exit Sub End If criteria = "県名 = '" & dbc1.SelText & "'" rs.MoveFirst rs.Find criteria, , adSearchForward dbc2.SetFocus `dbc2にフォーカスを移す End Sub Private Sub dbc2_Click(Area As Integer) ’2つ目のコンボボックス Dim mySQL As String mySQL = "SELECT 市名 FROM 地名" _ & "where 県名 = '" & dbc1.SelText & "'" ’コンボボックス1で選択されたものを抽出条件とする。 Set rs = New ADODB.Recordset rs.Open mySQL, cn, adOpenStatic Set Dbc2.DataSource = rs End Sub

  • キューとコンボボックスの使い方  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は独立して使えるのでしょうか?(データは同じです。)

専門家に質問してみよう