【VB6.0】複数のコンボボックスにデータベースから取り出した値をコンボボックスに入れたい
投稿者 neptune  (社会人)
投稿日時
2009/8/20 07:37:22
見易くするために、投稿欄の上にある
投稿で使用できる特殊コードの説明。を読んで置いてください。いろんなことができますから。
コードを見ればVB6と想像付きますが、きちんとVBのバージョンも書いて下さい。
>サイトを参考にし、一つのコンボボックスからはデータの取り出しが出来ました。
>しかし、残り4つのコンボボックスの値取得に関しては、まだ出来ておりません。
>いろいろ試しては見ましたが、なかなかうまくいきません。
どううまくいかないか書いて下さいね。判りませんから。
>下記は、一つのコンボボックスからはデータの取り出しが出来たコーディングです。
UPされたコードを見る限りコンボボックスからデータは取り出してませんけど?
Comb1、Comb2、Comb3、Comb4、Comb5に同じレコードの同じフィールドのデータを
追加するなら以下。
今回の質問には関係なさそうですが、Mysqlは知りませんので一応書いておきます。
投稿で使用できる特殊コードの説明。を読んで置いてください。いろんなことができますから。
コードを見ればVB6と想像付きますが、きちんとVBのバージョンも書いて下さい。
>サイトを参考にし、一つのコンボボックスからはデータの取り出しが出来ました。
>しかし、残り4つのコンボボックスの値取得に関しては、まだ出来ておりません。
>いろいろ試しては見ましたが、なかなかうまくいきません。
どううまくいかないか書いて下さいね。判りませんから。
>下記は、一つのコンボボックスからはデータの取り出しが出来たコーディングです。
UPされたコードを見る限りコンボボックスからデータは取り出してませんけど?
Comb1、Comb2、Comb3、Comb4、Comb5に同じレコードの同じフィールドのデータを
追加するなら以下。
Do Until myrec.EOF
Comb1.AddItem myrec.Fields("country_name").Value 'country_nameフィールドを読み出し
Comb2.AddItem myrec.Fields("country_name").Value
'以下Comb5までのコンボボックスについて書く。
myrec.MoveNext
Loop
今回の質問には関係なさそうですが、Mysqlは知りませんので一応書いておきます。
投稿者 daive  (社会人)
投稿日時
2009/8/20 17:55:55
VB6であれば、付属コントロールの
Microsoft ADO データコントロール Version 6.0
が、使えないかどうか、試して見てください。
ADO データコントロールが使用出来る場合は、
ADO データコントロールへ、正しく接続文字列の設定他、をしてあげれば、
各コントロールのプロパティ設定
DataSource
DataMenber
DataFiled
で、ADOコントロール経由で、データベースのテーブルを使用できるようになります。
プロパティ設定での、データベースアクセスが出来るようになると、
データベース関係のコーディング量も減りますし、変更、改造も楽になります。
例えば、ADO コントロールと、DataGrid の連携は、
DataSource へ Adodc1 などと設定するだけです。
’
VB6用の ADO コントロールの使い方については、書きませんので、
興味がある場合は、検索すれば、いろいろ出てきますので、検索してみてください。
Microsoft ADO データコントロール Version 6.0
が、使えないかどうか、試して見てください。
ADO データコントロールが使用出来る場合は、
ADO データコントロールへ、正しく接続文字列の設定他、をしてあげれば、
各コントロールのプロパティ設定
DataSource
DataMenber
DataFiled
で、ADOコントロール経由で、データベースのテーブルを使用できるようになります。
プロパティ設定での、データベースアクセスが出来るようになると、
データベース関係のコーディング量も減りますし、変更、改造も楽になります。
例えば、ADO コントロールと、DataGrid の連携は、
DataSource へ Adodc1 などと設定するだけです。
’
VB6用の ADO コントロールの使い方については、書きませんので、
興味がある場合は、検索すれば、いろいろ出てきますので、検索してみてください。
投稿者 たすく  (社会人)
投稿日時
2009/8/20 23:29:22
neptune様・daive様
お世話になります。
回答していただき、まことにありがとうございます!!
でやってみたのですが、nullが不正です、というエラーが返ってきたため、
テーブルの設定を確認したところ、country_nameのNOTNULLにチェックが入っていました。
チェックをはずすと、5つのコンボボックスに同じ値を表示することが出来ました。
テーブル設計は明確ではないといけませんね・・・。
daive様
アドバイスありがとうございます!
なるほど、そういうことも出来るんですね。
いま各コンボボックスのプロパティを確認したところ、
DataSource
DataMenber
DataFiled
がありました。
少し余裕があるとき、また同じシステムのプログラムを組み直し、
こちらの方法でデータリンクしてみたいと思います。
お世話になります。
回答していただき、まことにありがとうございます!!
'countryテーブルをオープン
myrec.Open "select * from country", myADOcon
myrec.MoveFirst
Do Until myrec.EOF
Comb1.AddItem myrec.Fields("country_name").Value
Comb2.AddItem myrec.Fields("country_name").Value
Comb3.AddItem myrec.Fields("country_name").Value
Comb4.AddItem myrec.Fields("country_name").Value
Comb5.AddItem myrec.Fields("country_name").Value
myrec.MoveNext
Loop
End Sub
でやってみたのですが、nullが不正です、というエラーが返ってきたため、
テーブルの設定を確認したところ、country_nameのNOTNULLにチェックが入っていました。
チェックをはずすと、5つのコンボボックスに同じ値を表示することが出来ました。
テーブル設計は明確ではないといけませんね・・・。
daive様
アドバイスありがとうございます!
なるほど、そういうことも出来るんですね。
いま各コンボボックスのプロパティを確認したところ、
DataSource
DataMenber
DataFiled
がありました。
少し余裕があるとき、また同じシステムのプログラムを組み直し、
こちらの方法でデータリンクしてみたいと思います。
今回ご質問させていただくのは、Mysqlからのデータの呼び出しについてです。
フォーム上に5つのコンボボックスがあり、
(オフジェクト名:Comb1、Comb2、Comb3、Comb4、Comb5)
フォームを読み込んだ際、コンボボックスの値をMysqlサーバから取得する
プログラムを作成しています。
それぞれのコンボボックスには、同じフィールドを参照し、同じ値が入るようにしたいです。
(国名が表示されるコンボボックス)
サイトを参考にし、一つのコンボボックスからはデータの取り出しが出来ました。
しかし、残り4つのコンボボックスの値取得に関しては、まだ出来ておりません。
いろいろ試しては見ましたが、なかなかうまくいきません。
下記は、一つのコンボボックスからはデータの取り出しが出来たコーディングです。
Private Sub Form_Load()
Dim myADOcon As ADODB.Connection
Dim myrec As ADODB.Recordset
Set myADOcon = New ADODB.Connection
Set myrec = New ADODB.Recordset
'MySQLODBC:MySQL ODBC 3.51、サーバ名:×××、データベース名:testdb、ユーザー名:user、パスワード:9999に接続
myADOcon.Open "Driver={MySQL ODBC 3.51 Driver};SERVER = ×××;DATABASE=testdb;UID=user;PWD=9999;"
'countryテーブルをオープン
myrec.Open "select * from country", myADOcon
myrec.MoveFirst
Do Until myrec.EOF
Comb1.AddItem myrec.Fields("country_name").Value 'country_nameフィールドを読み出し
myrec.MoveNext
Loop
End Sub
どのように付け加えれば、5つのコンボボックスに同じ値を取得させることが出来ますでしょうか?
言葉足らず、汚いコードで大変申し訳ないですが、
ご教授のほど、よろしくお願いします。