【问题标题】:3265: item not found in this collection3265:在此集合中找不到项目
【发布时间】:2017-11-24 09:22:24
【问题描述】:

MS Access 表中,每个项目都有一些附件。

我想通过VBA 代码将每个附件保存在一个临时目录中。

我试图复制的 VBA 代码在本教程中 https://www.youtube.com/watch?v=Gm5fch0xaI4&t=306s

问题是当我尝试为 DAO.Recordset2 对象分配值时,我已经得到了 error '3265' item not found in this collection

这是我的代码。

Private Sub Carica_Dati()

Dim rsParent As DAO.Recordset
Dim rsAttachment As DAO.Recordset2
Dim SQL As String

SQL = " SELECT [Data Processing List].Department" & _
      " FROM [Data Processing List]" & _
      " WHERE ((([Data Processing List].Treatment)=""HR-002""))"

Set rsParent = CurrentDb.OpenRecordset(SQL, dbOpenSnapshot)

If rsParent.RecordCount = 0 Then
    MsgBox "no"
Else
    Set rsAttachment = rsParent!Document.Value
End If

End Sub

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    我假设 Department 是您的附件字段。在这种情况下,您需要使用!Department,而不是!Document

    Set rsAttachment = rsParent!Department.Value

    如果Document 是您的附件字段,您需要将其包含在您的查询中:

    SQL = " SELECT [Data Processing List].Department, [Document]" & _
          " FROM [Data Processing List]" & _
          " WHERE ((([Data Processing List].Treatment)=""HR-002""))"
    

    【讨论】:

      【解决方案2】:

      我敢打赌,您的表 Data Processing List 没有名为 Document 的字段。因为 Document 是一个保留字,所以这对于一个字段来说无论如何都是一个坏名字。 (如果您发布了示例数据,那么我们可以确定问题所在。)查看 [MCVE]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多