我正在尝试构建一个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
答案 0 :(得分:0)
有2个地方具有记录集变量。还要更改此一个:
"SET tblProducts.[WholesalePrice] = " & Str(rs!Cost) & " " & _
我假设Cost是一个浮点数字,所以它应该有一个句点作为分隔符,与PC区域设置无关,为此请使用Str
函数(而不是CStr
!)