将附件保存到硬盘驱动器

时间:2014-04-30 14:02:15

标签: vba excel-vba access-vba attachment dao

我正在尝试编写一个简单的任务:从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    

1 个答案:

答案 0 :(得分:0)

这是因为Map不是DAO正在使用的标识符。

更改此行,

rsA.Fields("Map").SaveToFile _"C:\maptest.pdf"

要,

rsA.Fields("FileData").SaveToFile "C:\maptest.pdf"

Microsoft

  

FileData字段由Access数据库在内部保留   引擎存储二进制附件数据。

更新:我在看到您发现解决方案的最新更新之前发布了此消息。简而言之,原因是你将一个字段拆分成它自己的,自定义的,文件附件的子记录集(在DAO中非常好用)。