• 締切済み

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

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

この手のエラーは、組み立てたSQL文に誤りがある確率が高いです。 まずは、変数wstrsqlの値をウォッチしてみて、想定通りになっているか確認してみては。

関連するQ&A