【问题标题】:Load image from attatchment field to image control in a form将图像从附件字段加载到表单中的图像控件
【发布时间】:2019-04-17 19:54:46
【问题描述】:

我有一个表 [tb_projects] 有很多字段,包括附件字段 [P_IMAGE]

我还有一个带有图像控件 [img_project] 的表单,我想在其上显示特定记录的 tb_projects 表中的图像。

GlobalData.getProjectSelected 这是一个返回当前项目的函数

到目前为止我的代码:

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim rstAtt As Recordset
Dim sqlSelect As String

sqlSelect = "SELECT * FROM [tb_projects] WHERE [PROJECT_ID] = '" & GlobalData.getProjectSelected & "'"

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(sqlSelect, dbOpenSnapshot)
Set rstAtt = rst.Fields("P_IMAGE").Value

Me.img_project.Picture = rstAtt.Fields("FileData").Value

rst.Close
rstAtt.Close

Set dbs = Nothing
Set rst = Nothing

这给我一个错误提示:此属性的设置太长

如何在不将文件保存到 %TEMP% 并加载图像控件的路径的情况下完成此操作? DAO 甚至可以做到这一点吗?

【问题讨论】:

  • 如果使用绑定附件控件,会自动显示图片附件。否则,我强烈建议将文件路径存储在 DB 中,并在图像控件中使用 VBA 加载图像
  • 绑定的图片控件也会自动显示图片附件。不幸的是,您必须保存文件才能在函数的图像控件中显示它,它不接受原始图像数据。

标签: ms-access vba dao


【解决方案1】:

属性Picture 采用string 值。要显示的图片的路径。

使用属性PictureData 获取图片的Byte Array。确保您的数据库字段 [P_IMAGE] 具有有效的字节数组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多