いつもお世話になっております。
以前、こちらでMYSQLサーバでの日付を格納するDatetypeについてご質問させていただきました。
MYSQLとVB6.0についての質問です。
フォームを開いた際、コンボボックス「cmb_date1」には
本日から数えて4日前の日付を「yyyy年mm月dd日(aaa)」形式で表示させ、
Private Sub Form_Load()
'コンボボックスに今日~4日前の日付を表示
Dim day As Integer
For day = 0 To 3
cmb_date1.AddItem Format(Date - day, "yyyy年mm月dd日(aaa)")
Next
cmb_date1.Text = cmb_date1.List(0)
End Sub
それで、コンボボックス「cmb_date1」内の日付を選択し、
フォーカスを喪失した際、MYSQLサーバへ接続し、
テーブル「test」のフィールド「date」を検索し、その日付に該当するデータを
フォームのラベル「Label1、Label2」へ表示する処理をしています。
Private Sub cmb_date1_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=DB名;
UID=ユーザー名;PWD=PASS;STMT=SET CHARACTER SET cp932; "
myrec.Open "select * from test where date='" + cmb_date1.Text + "';", myADOcon
Label1.Caption = myrec.Fields("test1").Value
Label2.Caption = myrec.Fields("test2").Value
End Sub
そこで質問なのですが、
上記のコーディングですと、当然ながら2009年10月14日(水)のレコードが存在しないため
『実行時エラー'3021'
BOFとEOFのいずれかがTrueになっているか、または現在のレコードが
削除されています。要求された操作には、現在のレコードが必要です。』
が表示されます。
MYSQLサーバには「DATE型」で格納している日付「2009-10-14」を、
フォーム上で呼び出す際、コンボボックス「2009年10月14日(水)」を選択しても、
日付「2009-10-14」のデータを呼び出せる方法はございませんでしょうか?
今後、日付の抽出処理などを行いたいため、DatetypeはDATE型のままにしておきたいのですが・・・。
よろしくお願いいたします。