我正在尝试构建一个sql字符串来更新一个表,其中字段PosSupplierCode就像子表单中的记录集字段PosCode。
我收到“参数太少。预期1”错误。
尝试了各种各样的'“()等组合,但似乎无法做到正确> WHERE子句中的代码改编自另一个答案,但没有完成工作并尝试了其他各种方法。
Sub Update_Records()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
Dim field
Set db = CurrentDb
Set rs = Forms!frmProcInvoice!subInvoice.Form.RecordsetClone()
sSQL = "UPDATE tblProducts " & _
"SET tblProducts.[WholesalePrice] = rs!Cost " & _
"WHERE (((tblProducts.[PosSupplierCode])='" & (rs!PosCode) & "'));"
rs.MoveFirst
Do Until rs.EOF
db.Execute sSQL, dbFailOnError
Loop
rs.Close
Set rs = Nothing
End Sub
记录集变量有2个位置。改变这一个:
"SET tblProducts.[WholesalePrice] = " & Str(rs!Cost) & " " & _
我假设Cost是一个浮点数字,所以它应该有一个句点作为独立于PC区域设置的分隔符,为此使用Str
函数(不是CStr
!)