【问题标题】:.openrecordsource "run-time error '91'".openrecordsource“运行时错误'91'”
【发布时间】:2011-09-06 11:12:06
【问题描述】:

我对以下代码行有疑问,我觉得它很简单,但我无法解决。我收到运行时错误“91”对象变量或块变量未设置错误。错误发生在rsc.OpenRecordSet... 行上。 BadgeV 是一个数字,我安装了 DAO 参考,它是从一个链接的 sql server 表中提取的,其中我有一个主键和标识。我错过了什么?

Function FNC_Scan()
    Dim db As DAO.Database
    Dim rsc As DAO.Recordset

    Set db = CurrentDb()
    rsc.OpenRecordset ("SELECT dbo_ScanData.CardID, dbo_ScanData.Complete FROM dbo_ScanData WHERE (((dbo_ScanData.CardID)= Forms![Scan]!BadgeV))) AND ((dbo_ScanData.Complete)=0));")

    If rsc.EOF Then
        MsgBox "new item"
    Else
        MsgBox "Append Item"
    End If

    Set rsc = Nothing
    Set db = Nothing
End Function

【问题讨论】:

  • 设置 rsc = db.OpenRecordset ("SELECT dbo_ScanData.CardID, dbo_ScanData.Complete FROM dbo_ScanData WHERE dbo_ScanData.CardID=" & Forms![Scan]!BadgeV & " AND dbo_ScanData.Complete=0")

标签: sql sql-server-2008 ms-access vba


【解决方案1】:

应该是

set rsc = db.OpenRecordset(...)

而不是

rsc.OpenRecordset(...)

【讨论】:

  • 感谢您的帮助,但现在我收到运行时错误 3061 参数太少。预期 1. 任何见解?
  • 检查字段名称的拼写——这通常意味着引擎找到了一个在基础表中没有找到的名称。
  • 谢谢大家,这是我的完整解决方案,以防它对其他人有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-25
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多