我在MS Access方面有一些经验,但似乎无法找到将文件附加到记录的vba。我只有大约2,000条记录(因为它是一个数据输入项目,所以没有更多记录)所以MS Access数据库大小不会成为问题。每条记录都有一条完整的路径"路径"字段,但我无法弄清楚如何使用vba将文件附加到新的"附件"字段。
到目前为止,我所看到的一切都是关于用户附加文件或创建路径 - 实际上并没有使用vba来附加文件(假设我已经有了路径)。
非常感谢任何帮助!
答案 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