使用记录集作为WHERE sql字符串中的条件

问题描述 投票:0回答:1

我正在尝试构建一个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
ms-access access-vba
1个回答
0
投票

记录集变量有2个位置。改变这一个:

"SET tblProducts.[WholesalePrice] = " & Str(rs!Cost) & " " & _

我假设Cost是一个浮点数字,所以它应该有一个句点作为独立于PC区域设置的分隔符,为此使用Str函数(不是CStr!)

© www.soinside.com 2019 - 2024. All rights reserved.