我正在尝试编写一个简单的任务:从Access(2013)数据库中检索附件并将其保存到磁盘。目前我希望代码从记录集中获取第一条记录并将附件保存到C:\ maptest.pdf
它显示错误3265:此集合中找不到项目(但数据库中的每条记录都有附件)。
有没有人知道我做错了什么?
Private Sub CommandButton4_Click()
Dim appAcc As New Access.Application
Dim rst As DAO.Recordset2
Dim rsA As DAO.Recordset2
Dim fld As DAO.Field2
Dim dbpath As String
dbpath = ThisWorkbook.Path & "\SiteDetails.accdb"
With appAcc
.OpenCurrentDatabase dbpath
Set rst = .CurrentDb.OpenRecordset("SiteMaps")
Set rsA = rst.Fields("Map").Value
End With
rsA.Fields("Map").SaveToFile _"C:\maptest.pdf"
AppAcc.Quit
Set appAcc = Nothing
End Sub
答案 0 :(得分:0)
这是因为Map不是DAO正在使用的标识符。
更改此行,
rsA.Fields("Map").SaveToFile _"C:\maptest.pdf"
要,
rsA.Fields("FileData").SaveToFile "C:\maptest.pdf"
FileData字段由Access数据库在内部保留 引擎存储二进制附件数据。
更新:我在看到您发现解决方案的最新更新之前发布了此消息。简而言之,原因是你将一个字段拆分成它自己的,自定义的,文件附件的子记录集(在DAO中非常好用)。