【问题标题】:Saving Image as OLE Object, in Access在 Access 中将图像另存为 OLE 对象
【发布时间】:2016-10-11 18:01:30
【问题描述】:

我有一个包含 OLE 对象类型字段的表。然后我有一个包含多个字段的表单。有些只是文本字段。但是,我在表单上也有一个 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 字段,以便稍后将其加载回表单上的图像对象?

谢谢

答案:

所以,我最终做的是关注此https://support.microsoft.com/en-us/kb/210486 [编辑:该链接现已失效,请尝试this]

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

【问题讨论】:

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


【解决方案1】:

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

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

然后在这个网站上搜索auto attach images using vba

【讨论】:

  • 是的,我知道在表格中保存对象并不总是最好的主意,但我们将保存的上限限制为 100kb,所以我认为它会没问题。而且,考虑到商业案例,这是我唯一的选择。感谢您的回复。
  • 因此,此方法似乎不适用于 OLE 对象字段类型,但适用于作为附件的字段。我读到最好将文件另存为 OLE。
  • 上面的网址有什么运气吗?
  • 抱歉没有回复。在项目之间切换会让我迷失方向。我实际上最终使用了这个:support.microsoft.com/en-us/kb/210486。我会在我原来的问题中发布更多内容
猜你喜欢
  • 2013-11-10
  • 2012-05-29
  • 2011-01-25
  • 1970-01-01
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多