在MS Access
表中,我对每个项目都有一些附件。
我想通过VBA
代码将每个附件保存在临时目录中。
我想要复制的VBA代码在本教程中 https://www.youtube.com/watch?v=Gm5fch0xaI4&t=306s
问题是,当我尝试为error '3265' item not found in this collection
对象分配值时,我已经获得了DAO.Recordset2
。
这是我的代码。
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
答案 0 :(得分: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""))"
答案 1 :(得分:0)
我打赌你的表格Data Processing List
没有名为Document
的字段。不管怎样,这对于一个字段来说都是一个坏名字,因为 Document 是一个保留字。 (如果您发布了样本数据,那么我们确定问题是什么。)查看[MCVE]