vba - 加载图像会使列表框和文本框闪烁一次
问题描述
在 Access 2016 中,我有一个带有列表框的表单和一个名为imgFrame
.
在列表框中单击文件名时,将显示图像。列表框Click
事件的代码是:imgFrame.Picture = "c:\path\filename.jpg"
每当此行运行时,图像会加载一次,但图像控件(以及表单上的任何文本框)会加载一次。(命令按钮不闪烁。)
截图(慢动作)
我尝试使用 Application.Echo 填充,如下所示:
Sub showImg_pic(fName)
Application.Echo False
imgFrame.Picture = fName
DoEvents
Application.Echo True
End Sub
并以imgFrame.Visible
相同的方式进行实验,但没有发现任何区别。
解决方案
在将 ControlSource 属性添加到 Image 控件之前,Access 2003 需要代码设置 Picture 属性。
我从未使用过图片属性。我使用 ControlSource 属性在 Image 控件中动态加载图像。它可以引用包含图像文件的附件类型字段,但嵌入文件可以大大增加数据库大小,更快地达到 2GB 访问文件大小限制。因此,也可以引用具有外部位置的完整图像路径或部分路径的文本字段并使用表达式来构造完整路径。没有 VBA 代码。没有眨眼。
="C:\your folder path\" & [listbox name]
使用任何字段来构造图像文件名:
="C:\your folder path\" & [EmployeeID] & ".jpg"
如果图像位于数据库旁边的文件夹中:
=CurrentProject.Path & "\Images\" & [listbox name]
如果图像位于中央服务器位置,请使用 UNC 路径:
="\\servername\path\Images\" & [listbox name]
推荐阅读
- visual-studio - 如何在运行时根据地址确定 C++ 对象的类型?
- javascript - 在 Phaser 3 TypeError 中调用 this.scene.restart(): this.body is undefined
- html - 无法获取表格单元格值
- java - 打开 url 并发送标头值
- javascript - 为什么 lodash deepClone 不对 Function 属性进行深度克隆?
- java - 使用 thymleaf 将整数中的美分值转换为 HTML 中的货币
- python - 拼字游戏:假设您正在尝试完成填字游戏
- javascript - 我需要反转对象的格式
- mysql - 在 laravel 5.8 中连接到第二个数据库时出错
- java - 使用@Qualifier 注解会抛出“NoUniqueBeanDefinitionException”(发现多个相同类型的 bean)