在没有文件路径的 Access 中组合框更改时显示不同的图像

Posted

技术标签:

【中文标题】在没有文件路径的 Access 中组合框更改时显示不同的图像【英文标题】:Display a different image on combo box change in Access without file paths 【发布时间】:2014-12-10 09:56:01 【问题描述】:

我正在创建一个包含组合框的表单,假设它称为“Postcode_cb”。我想为该组合框中的每个项目显示一个独特的图像。更改组合框时,图像必须位于相同位置并相互替换,以便只有 1 个图像。这必须在不使用文件路径的情况下完成。

例如:

【问题讨论】:

【参考方案1】:

试试这个方法:创建表 [tblImg]([id], [picture]),其中 [id] 很长,[picture] 是 OLE。 插入id=1和id=2的两条记录,将对应的图片嵌入到[picture]字段中。

然后用 rowsource [tblImg] 创建 stanalone form [frmImages] 并将 'bound object frame' 与控制源 [picture] 放在一起。

将 [frmImages] 作为子表单放在主表单中。

将 LinkMasterFields 设置为 [Postcode_cb],将 LinkChildFields 设置为 [id]。

【讨论】:

【参考方案2】:

我在给出酒店星级的数据库中有类似的内容。当您浏览酒店时,它会根据评级显示实际星级。我这样做的方式是将所有图像放在一个位置(将它们放在彼此的顶部)给每个图像一个名称。并将它们全部设置为可见 = 否。

示例 Img1、Img2 等,直到所有图像都有名称。

然后打开 Visual basic 并创建一个名为 Private Sub Form_Current() 的子程序(如果您还没有的话)。然后在此子下使用以下代码

Forms![FormName]![ComboBoxName].SetFocus
Select Case Forms![FormName]![ComboBoxName].Text
    Case Is = ""
Forms![FormName]!img1.Visible = False
Forms![FormName]!img2.Visible = False
    Case Is = "1"
Forms![FormName]!img1.Visible = True
    Case Is = "2"
Forms![FormName]!img2.Visible = True
End Select

只有当您只有 5 到 10 张图像时,这才是好的,用这种方式处理更多的图像会更加困难。

也许人们可以建议其他方法,我发现这是最容易满足我需求的方法。

【讨论】:

以上是关于在没有文件路径的 Access 中组合框更改时显示不同的图像的主要内容,如果未能解决你的问题,请参考以下文章

当组合框有焦点时显示下拉列表

当表单中没有任何更改时显示警报框

extjs 组合框在单击时显示空白列表

sql仅在填充组合框时显示列表框值

如何在 Access 2007 中设置第一个连续组合框不可见?

WinForms:DataGridView - 当单元格被编辑时显示组合框