在Access

时间:2016-06-10 17:14:12

标签: vba ms-access access-vba ms-access-2007

我有一个表格,其字段是OLE Object类型。然后我有一个包含许多字段的表单。有些只是文本字段。但是,我在表单上也有一个Image对象。当用户单击按钮时,会打开一个对话框,他们可以拍摄照片。一旦他们选择了照片,Image对象就会显示该照片。我想将该图像保存到数据库。我只是在计算机上保存了对文件所在位置的引用。因此,如果移动数据库,这将不起作用。这是我的代码:

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函数读取文件并将其保存到数据库中。然后,当我运行报表或打开包含图片onload的表单时,我使用WriteBlob函数将文件写入临时文件夹,然后使用该路径填充Image对象。

1 个答案:

答案 0 :(得分:1)

当您开始嵌入图像时,数据库可能会变得非常大,导致查询速度变慢,崩溃,超时和用户不满意。将图像添加到数据库时要小心使用OLE

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

此网站上的搜索结果为auto attach images using vba