VBAで更新処理
vbaで更新がrs.Open wstrsql, CN, adOpenStatic, adLockOptimistic, adCmdTextのところで
「抽出条件が一致しません」と、エラーがでるのですがなぜなんでしょうか。
どうしたらうまく更新が出来るのでしょうか?
教えてください、お願いします。
下記のは、自分がかいた型とコードです
1コード:数値型
1名:テキスト型
2コード:数値型
2名:テキスト型
日付:日付/数値型
text1~6:数値型
Dim rs As ADODB.Recordset
Dim CN As ADODB.Connection
Dim wstrsql As String
Dim ctl As Control
Dim strFild As String
Set CN = CurrentProject.Connection
Set rs = New ADODB.Recordset
If MsgBox("更新してもよろしいですか?", vbOKCancel + vbInformation, "更新") = vbOK Then
wstrsql = ""
wstrsql = wstrsql & " UPDATE test "
wstrsql = wstrsql & " SET 1コード ='" & Me![cmd1コード] & "'"
wstrsql = wstrsql & " ,1名 = '" & Me![txt1コード] & "'"
wstrsql = wstrsql & " ,2コード = '" & Me![cmd2コード] & "'"
wstrsql = wstrsql & " ,2名 = '" & Me![txt2コード] & "'"
wstrsql = wstrsql & " ,日付= " & Me![txt作成日] & " "
wstrsql = wstrsql & " ,text1= '" & Me![txttext1] & "' "
wstrsql = wstrsql & " ,text2= '" & Me![txttext2] & "' "
wstrsql = wstrsql & " ,text3= '" & Me![txttext3] & "' "
wstrsql = wstrsql & " ,text4= '" & Me![txttext4] & "' "
wstrsql = wstrsql & " ,text5= '" & Me![txttext5] & "' "
wstrsql = wstrsql & " ,text6= '" & Me![txttext6] & "' "
wstrsql = wstrsql & " WHERE (((test.1コード )= '" & Me![cmd1コード] & "')) "
wstrsql = wstrsql & " AND (((test.1名 )= '" & Me![txt1トコード] & "' ))"
wstrsql = wstrsql & " AND (((test.日付 )= #" & Me![txt作成日] & "# ))"
wstrsql = wstrsql & ";"
rs.Open wstrsql, CN, adOpenStatic, adLockOptimistic, adCmdText
If rs.EOF Then
rs.Update
End If
Set CN = Nothing
Set rs = Nothing
If MsgBox("更新完了しました!", , "更新") = vbOK Then
End If
End If
End Sub
補足
piroin654さん 回答ありがとうございます。 カレントデータベースへリンクすると言う方法がよくわかりません。よろしければ詳しく教えて頂けませんか? あと、W_売上伝票ですがパソコンごとのワークファイルなので、実際はW_売上伝票+IPアドレスで 売上入力を立ち上げるたびに、WORKデーベースの中に、CREATE TABLE 終了時にDROPするように扱いにしています。 SQLのカレントデータベースは、ACCESS2003「ファイルの接続」で指定しています。 よくわからず質問していますが、宜しくお願いします。