2016-06-10 30 views
0

我有一个带有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对象。

回答

1

当您开始嵌入图像时,数据库可能会变得很大,导致查询,崩溃,超时和不满意的用户变慢。添加图像到数据库时,使用OLE谨慎

简单的谷歌搜索有how to load ole object from folder into table

并在此网站搜索想出了auto attach images using vba

+0

是的,我知道在一个表中保存对象并不总是最好的的想法,但我们正在限制保存到100kb,所以我认为它会好的。而且,考虑到商业案例,这是我拥有的唯一选择。感谢您的回应。 – jason

+0

因此,此方法似乎不适用于OLE对象字段类型,但对于附件字段而言。我读过最好将文件保存为OLE。 – jason

+0

http://www.cimaware.com/expert-zone/handling-images-with-microsoft-access – dbmitch