如何从主窗体更新子窗体中的图像框控件源
Posted
技术标签:
【中文标题】如何从主窗体更新子窗体中的图像框控件源【英文标题】:How to update Image box controlsource in subform from main form 【发布时间】:2020-11-17 17:03:14 【问题描述】:我有一个主窗体和一个加载图像记录的子窗体。当我设置表单时,我通过以下属性为子表单本身的图像框指定了控制源:
=[Forms]![MainForm]![cmbImageLocation] & [RelativePath] & [ImageFileName]
其中cmbImageLocation
是主窗体上带有根目录的组合框,RelativePath
是文件夹位置,ImageFileName
是具体的 jpeg 文件。
例如:cmbImageLocation
D:\RelativePath
OneDrive\ImageFileName
001.jpg
完整的连接路径是 D:\OneDrive\001.jpg
如果在图片框子窗体控件源中使用此代码,图片加载成功。 我现在需要将控制源规范从子窗体移动到主窗体的 VBA。
我在子窗体中设置了一个测试文本框,并在主窗体的 VBA 中运行了这段代码:
Me.subFormImages!txtTest.ControlSource = "=[Forms]![MainForm]![cmbImageLocation] & [RelativePath] & [ImageFileName]"
我得到了正确的字符串 D:\OneDrive\001.jpg
如果我用同样的代码更新子窗体上的图片框控件源:
Me.subFormImages!ImgBox.ControlSource = "=[Forms]![MainForm]![cmbImageLocation] & [RelativePath] & [ImageFileName]"
我明白了
“运行时错误'438':对象不支持此属性或方法”。
【问题讨论】:
【参考方案1】:我通过将组合框放在子窗体的标题中来解决这个问题,因此我不需要通过主窗体的 vba 操作控制源。
【讨论】:
以上是关于如何从主窗体更新子窗体中的图像框控件源的主要内容,如果未能解决你的问题,请参考以下文章