【问题标题】:use recordset as criteria in WHERE sql string在 WHERE sql 字符串中使用记录集作为条件
【发布时间】:2019-02-28 20:00:05
【问题描述】:

我正在尝试构建一个 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 vba


【解决方案1】:

记录集变量有 2 个地方。也改变这个:

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

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

【讨论】:

  • 谢谢。我是新来的,在我自己的问题中添加了 cmets。
猜你喜欢
  • 2015-10-10
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 2012-12-09
  • 1970-01-01
  • 2017-12-31
  • 2018-08-16
  • 1970-01-01
相关资源
最近更新 更多