コンボボックスを選択後のDB読み込み方法について

タグの編集
投稿者 かんた  (社会人) 投稿日時 2009/10/3 00:04:47
以前、お世話になりました
またご質問させていただきたいと思います。


今回のシステムでは、フォームに以下を配置しております。
Combo_no    '社員番号を入力
lal_add      '住所を入力
lal_name     '氏名を入力
lal_age      '年齢を入力


DB情報(MYSQLサーバ)
テーブル名:   test
フィールド名:  syain_no     adress     name     age
型:        int        TEX      TEXT           int
主キー:            ○

フォーム上のコンボボックス「Combo_no」に格納されている社員番号を
選択しフォーカスを喪失すると、社員番号に該当するレコードを
MYSQLサーバから呼びだし、フォーム上の各ラベルにレコードが表示される
処理を作成しております。


Private Sub Combo_no_LostFocus()

Dim myADOcon As ADODB.Connection
Dim myrec As ADODB.Recordset

Set myADOcon = New ADODB.Connection
Set myrec = New ADODB.Recordset

myADOcon.Open "Driver={MySQL ODBC 3.51 Driver};SERVER = サーバ名;DATABASE=データベース名;UID=ユーザID;PWD=password;STMT=SET CHARACTER SET cp932; "
myrec.Open "select * from test where syain_no='" + Combo_no.Text + "';, myADOcon"


lal_add.Caption = myrec.Fields("address").Value
lal_name.Caption = myrec.Fields("name").Value
lal_age.Caption = myrec.Fields("age").Value

End Sub


この処理を実行すると、
myrec.Open "select * from test where syain_no='" + Combo_no.Text + "';, myADOcon"
の行で
「実行時エラー’3704
この操作を実行するために必要な操作を許可されていません。このコンテキストで閉じているかあるいは無効です。」
のエラーが返ってきます。

このエラーの対処法はどのようにすればよいのでしょうか?
考え方自体間違っているのでしょうか?


手ほどきのほど、よろしくお願いいたします。
投稿者 YuO  (社会人) 投稿日時 2009/10/3 00:34:53
ADOを直接使った事がないですが……

> myrec.Open "select * from test where syain_no='" + Combo_no.Text + "';, myADOcon"
の最後の, myADOconっていうのは文字列に含めてはいけないのではないでしょうか。つまり,
myrec.Open "select * from test where syain_no='" + Combo_no.Text + "';", myADOcon
ではないでしょうか。
投稿者 かんた  (社会人) 投稿日時 2009/10/15 00:49:07
Yu0さん

返信遅くなってすみません。
ご回答いただき、ありがとうございます!

ダブルコートの付け忘れてしまい、
勝手にVBE側でつけられていたことに気がつきませんでした。
ありがとうございました!