【问题标题】:Save attachment to hard drive将附件保存到硬盘
【发布时间】:2014-04-30 14:02:14
【问题描述】:

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

【问题讨论】:

  • 这个错误出现在哪一行?
  • 它显示错误:rsA.Fields("Map").SaveToFile _"C:\maptest.pdf" 但是当我将“Map”更改为“FileData”时它工作正常。看来我不必引用名为“Map”而是“FileData”的列(即使 FileData 不作为列存在)

标签: excel vba ms-access attachment dao


【解决方案1】:

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

改变这一行,

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

到,

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

根据Microsoft

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

更新:我在看到您发现解决方案的最新更新之前发布了此信息。简而言之,原因是您要将字段拆分为自己的、排序自定义的文件附件子记录集(在 DAO 中具有非常好的功能)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    相关资源
    最近更新 更多