【发布时间】: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 加载图像
-
绑定的图片控件也会自动显示图片附件。不幸的是,您必须保存文件才能在函数的图像控件中显示它,它不接受原始图像数据。