【问题标题】:Why doesn't this DAO recordset query return any results?为什么这个 DAO 记录集查询不返回任何结果?
【发布时间】:2016-02-02 01:10:17
【问题描述】:

我正在处理一个 Access 2007 数据库,并且我已经设置了一个 DAO 记录集查询,但是它没有返回任何结果。它不会抛出任何错误,只是没有结果。 Me.ProID 是一个文本字段,它包含字母和数字。我认为这与文本字段有关,可能是引号的位置。

Dim contractSQL As String
Dim contractDB As DAO.Database
Dim contractRS As DAO.Recordset

contractSQL = "SELECT Top 1 ContractName, ItemDescription, Price FROM ContractPricing WHERE AccountNo = " & Me.Parent.[AccntNumber] & " AND PartNo = " & """ & Me.ProdID & """ & " ORDER BY Price Asc"

Set contractDB = CurrentDb
Set contractRS = contractDB.OpenRecordset(contractSQL)

Debug.Print contractRS.RecordCount

【问题讨论】:

  • contractSQL = "SELECT ... 行因此触发编译错误 -> & """ & 出现在该行的 2 个位置。你想要这个吗? -> & "'" & 还是这个? -> & """" &
  • 追踪此问题的方法是在您的contractSQL分配上设置一个断点,执行分配(即执行一个步骤),然后在调试窗口中打印分配的SQL语句。然后将其复制并粘贴到查询中,看看会发生什么以及需要更改什么。
  • HansUp,感谢您提供的解决方案。 Alexander Remesch,感谢您提供有关未来故障排除的提示。这真的很有帮助。

标签: ms-access vba ms-access-2007


【解决方案1】:

该字符串连接可能是错误的。 " & """ & Me.ProdID & """ & " 几乎可以肯定是 '" & Me.ProdID & "'

【讨论】:

    【解决方案2】:

    不知道你指的是不是这个:

    contractSQL = "SELECT Top 1 ContractName, ItemDescription, Price FROM ContractPricing WHERE AccountNo = " & Me.Parent.[AccntNumber] & " AND PartNo = " & Me.ProdID & " ORDER BY Price Asc"
    

    我不确定这是否会对您有所帮助。我对此也很陌生。但希望它会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 2018-01-24
      相关资源
      最近更新 更多