我有一个带有OLE对象类型的字段的表。然后我有一个表格,有很多字段。有些只是文本字段。但是,我在表单上也有一个Image对象。当用户点击一个按钮时,会打开一个对话框,他们可以拍照。一旦他们选择了照片,图像对象就会显示该图片。我想将该图像保存到数据库。我似乎只是在计算机上保存了文件所在位置的参考。所以,如果数据库被移动,这将不起作用。下面是我的代码有:将图像保存为OLE对象,在Access中
Dim wrkCurrent As DAO.Workspace
Dim dbs As DAO.Database
Dim rstPerson As DAO.Recordset
Set wrkCurrent = DBEngine.Workspaces(0)
Set dbs = CurrentDb
Set rstPerson = dbs.OpenRecordset("SELECT * FROM tbl_person WHERE id =" & ID)
With rstPerson
.Edit
!bio_photo = Me.Image37.picture
.Update
End With
我将如何保存图像文件的OLE字段,这样我就可以加载回Image对象,在表格上,在以后的时间?
感谢
答:
所以,我落得这样做下面这个https://support.microsoft.com/en-us/kb/210486
我使用readBLOB功能来读取文件并将其保存到数据库中。然后,当我运行一个报告或打开一个包含图片的表单时,我使用WriteBlob函数将该文件写入临时文件夹,然后使用该路径填充Image对象。
是的,我知道在一个表中保存对象并不总是最好的的想法,但我们正在限制保存到100kb,所以我认为它会好的。而且,考虑到商业案例,这是我拥有的唯一选择。感谢您的回应。 – jason
因此,此方法似乎不适用于OLE对象字段类型,但对于附件字段而言。我读过最好将文件保存为OLE。 – jason
http://www.cimaware.com/expert-zone/handling-images-with-microsoft-access – dbmitch