如何使用R下载所有MS Access附件

用户名

我在MS Access中大约有100行,每行都包含一个附件。在RI中使用RODBC可以访问表,但不知道如何访问附件文件并在R中下载它们

你能帮我怎么做吗

完美的

MS Access中的附件是特殊的数据类型,实际上涉及嵌套表以获取元数据(文件名和文件数据)信息。因此,您不能仅通过RODBC使用DML SQL语句访问此数据,而可以使用COM接口,特别是连接到DAO SaveToFile()方法。

请考虑以下使用RDCOMClient允许与Access Object Library进行接口连接包的方法。请注意:为了运行以下代码,您必须安装MSAccess.exe(MS Office GUI程序),而不仅仅是.accdb文件。在下面的SQL查询中,ColAttach是表中附件字段的名称,并且您必须使用这些限定符.filedata.filenameDAO记录集字段号从零开始(因此为0和1)。

library(RDCOMClient)

# INITIALIZING OBJECTS
accApp <- COMCreate("Access.Application")
accApp$OpenCurrentDatabase("C:\\Path\\To\\Database.accdb")
docmd <-  accApp[["DoCmd"]]
db <- accApp$CurrentDb()

rst <- db$OpenRecordset("SELECT ColAttach.filedata, ColAttach.filename FROM TblAttach")

while(rst$EOF() == FALSE){     
  rst$Fields(0)$SaveToFile(paste0("C:\\Path\\To\\Output_", rst$Fields(1)$Value()))      
  rst$MoveNext()
}

# CLOSING OBJECTS
rst$close()
docmd$CloseDatabase()
accApp$Quit()

# RELEASING RESOURCES
accApp <- db <- docmd <- rst <- NULL    
rm(rst, db, accApp)
gc()

对于多个附件,请遍历每个文件名文件数据的子记录集(请注意不同的SQL)。确保检查文件是否存在并相应销毁,否则您将收到一个COM错误:

rst <- db$OpenRecordset("SELECT ID, ColAttach FROM TblAttach")

while(rst$EOF() == FALSE){    
  childRS <- rst[['ColAttach']]$Value()

  while(childRS$EOF() == FALSE){
    if (file.exists(paste0("C:\\Path\\To\\Output_", childRS[["filename"]]$Value()))) {
      unlink(paste0("C:\\Path\\To\\Output_", childRS[["filename"]]$Value()))
    }

    childRS[["filedata"]]$SaveToFile(paste0("C:\\Path\\To\\Output_", 
                                     childRS[["filename"]]$Value()))
    childRS$MoveNext()
  }

  rst$MoveNext()
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用python IMAP下载邮件的所有附件

来自分类Dev

使用ADO处理MS Access中附件类型的字段

来自分类Dev

使用函数和查询保存 Access 中的附件

来自分类Dev

使用Perl从MS Outlook下载附件

来自分类Dev

Ms Access发送带有报告的电子邮件附件

来自分类常见问题

如何显示MS Access表附件或存储在表单上SharePoint位置的图像?

来自分类Dev

如何显示MS Access表附件或存储在表单上SharePoint位置的图像?

来自分类Dev

使用SendObject从Access发送Excel对象,电子邮件中没有附件

来自分类Dev

在PowerPoint中查看图片(作为附件存储在MS Access中)

来自分类Dev

下载附件(找不到附件)

来自分类Dev

如何在PictureBox中显示来自Access数据库的附件图像

来自分类Dev

如何使用oerplib从OERP下载附件

来自分类Dev

使用Microsoft Access,需要从其他帐户的Outlook电子邮件中提取附件

来自分类Dev

使用SQL从另一个表中提取附件(Access 2010)?

来自分类Dev

删除所有附件

来自分类Dev

下载我的Gmail帐户中的所有附件

来自分类Dev

如何使用VB6 ADO删除MS Access中表的所有记录

来自分类Dev

使用Java,如何列出和打印MS-Access 2003 mdb文件中的所有查询?

来自分类Dev

如何使用 VBA 列出或枚举 MS Access 宏下的所有查询名称

来自分类Dev

如何使用python获取ms Access中当前日期的所有数据?

来自分类Dev

Outlook Online如何下载附件?

来自分类Dev

如何处理附件的附件?

来自分类Dev

如何循环访问MS Access DB中的所有表

来自分类Dev

Moqui:打开附件而不是下载附件

来自分类Dev

GOS附件下载

来自分类Dev

从Yammer下载附件

来自分类Dev

下载多个附件

来自分类Dev

每天从邮箱下载附件

来自分类Dev

使用MS Access中的VBA将附件从一个记录集中的记录复制到另一个记录中的记录

Related 相关文章

  1. 1

    如何使用python IMAP下载邮件的所有附件

  2. 2

    使用ADO处理MS Access中附件类型的字段

  3. 3

    使用函数和查询保存 Access 中的附件

  4. 4

    使用Perl从MS Outlook下载附件

  5. 5

    Ms Access发送带有报告的电子邮件附件

  6. 6

    如何显示MS Access表附件或存储在表单上SharePoint位置的图像?

  7. 7

    如何显示MS Access表附件或存储在表单上SharePoint位置的图像?

  8. 8

    使用SendObject从Access发送Excel对象,电子邮件中没有附件

  9. 9

    在PowerPoint中查看图片(作为附件存储在MS Access中)

  10. 10

    下载附件(找不到附件)

  11. 11

    如何在PictureBox中显示来自Access数据库的附件图像

  12. 12

    如何使用oerplib从OERP下载附件

  13. 13

    使用Microsoft Access,需要从其他帐户的Outlook电子邮件中提取附件

  14. 14

    使用SQL从另一个表中提取附件(Access 2010)?

  15. 15

    删除所有附件

  16. 16

    下载我的Gmail帐户中的所有附件

  17. 17

    如何使用VB6 ADO删除MS Access中表的所有记录

  18. 18

    使用Java,如何列出和打印MS-Access 2003 mdb文件中的所有查询?

  19. 19

    如何使用 VBA 列出或枚举 MS Access 宏下的所有查询名称

  20. 20

    如何使用python获取ms Access中当前日期的所有数据?

  21. 21

    Outlook Online如何下载附件?

  22. 22

    如何处理附件的附件?

  23. 23

    如何循环访问MS Access DB中的所有表

  24. 24

    Moqui:打开附件而不是下载附件

  25. 25

    GOS附件下载

  26. 26

    从Yammer下载附件

  27. 27

    下载多个附件

  28. 28

    每天从邮箱下载附件

  29. 29

    使用MS Access中的VBA将附件从一个记录集中的记录复制到另一个记录中的记录

热门标签

归档