使用同一记录中的路径在MS Access中附加文件

时间:2015-08-09 03:34:45

标签: vba access-vba ms-access-2010

我在MS Access方面有一些经验,但似乎无法找到将文件附加到记录的vba。我只有大约2,000条记录(因为它是一个数据输入项目,所以没有更多记录)所以MS Access数据库大小不会成为问题。每条记录都有一条完整的路径"路径"字段,但我无法弄清楚如何使用vba将文件附加到新的"附件"字段。

到目前为止,我所看到的一切都是关于用户附加文件或创建路径 - 实际上并没有使用vba来附加文件(假设我已经有了路径)。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您需要使用Access .LoadFromFile对象的DAO.Field2方法。例如,给定一个名为[tblTest]

的表

ID - 自动编号,主键
MyFilePath - 文本(255)
MyFileAttach - 附件

ID  MyFilePath                      MyFileAttach
--  ------------------------------  ------------
1   C:\Users\Gord\Pictures\r.bmp    @(0)
2   C:\Users\Gord\Pictures\g.bmp    @(0)
3   C:\Users\Gord\Pictures\b.bmp    @(0)

以下代码会将指定文件插入每条记录的[MyFileAttach]字段

Dim cdb As DAO.Database, rstMain As DAO.Recordset, rstAttach As DAO.Recordset2, _
        fldAttach As DAO.Field2
Set cdb = CurrentDb
Set rstMain = cdb.OpenRecordset("SELECT MyFilePath, MyFileAttach FROM tblTest", dbOpenDynaset)
Do Until rstMain.EOF
    rstMain.Edit
    Set rstAttach = rstMain("MyFileAttach").Value
    rstAttach.AddNew
    Set fldAttach = rstAttach.Fields("FileData")
    fldAttach.LoadFromFile rstMain("MyFilePath").Value
    rstAttach.Update
    rstAttach.Close
    Set rstAttach = Nothing
    rstMain.Update
    rstMain.MoveNext
Loop
rstMain.Close
Set rstMain = Nothing
Set cdb = Nothing