如何使用VBA将按钮的图片更改为嵌入式默认图像之一?

Mik*_*ike 0 ms-access image button access-vba ms-access-2013

我试图获得一个按钮,当我单击该按钮时将其从“左箭头”更改为“右箭头”,但是我不确定如何通过VBA分配图像。我试过了Me!btnCollapseUnscheduled.Picture = "Arrow Left",但是这样会收到错误消息。

Han*_*sUp 6

在Access 2010或更高版本中,可以将映像存储在MSysResources系统表中。然后,选择共享您的命令按钮的图片类型属性,选择那些共享图片中的一个。

之后,很容易在命令按钮的单击事件中在共享图像之间切换。我将命令按钮命名为“ cmdArrow”,并将共享图像命名为“ Arrow Left”“ Arrow Right” ...

Option Compare Database
Option Explicit

Private Sub cmdArrow_Click()
    Dim strDirection As String

    If Me!cmdArrow.Picture Like "*Left" Then
        strDirection = "Right"
    Else
        strDirection = "Left"
    End If
    Me!cmdArrow.Picture = "Arrow " & strDirection
    Me!txtImage.Value = Me!cmdArrow.Picture
End Sub

Private Sub Form_Load()
    Me!txtImage.Value = Me!cmdArrow.Picture
End Sub
Run Code Online (Sandbox Code Playgroud)

屏幕截图:

带有左箭头图像的命令按钮

带有右箭头图像的命令按钮

最大的挑战是将映像加载到MSysResources中。我创建了一个一次性表单,并添加了一个命令按钮。接下来,我选择“ 嵌入式”作为按钮的“ 图片类型”属性,并从可用选项中选择“ 向左箭头”。然后,我将“ 图片类型”从“ 嵌入式”更改为“ 共享”,这在MSysResources中添加了一行,并在附件字段中添加了图像数据,在“ 名称”字段中添加了命令按钮的名称。因此,我打开了表格,将“ 名称更改为“向左箭头”,然后关闭了表格。注意MSysResources除非您在“导航选项中启用“显示系统对象”,否则导航”窗格中将不会显示该图标。

我为“向右箭头”重复了这些步骤。听起来可能有些怪异,但这并不是一个很大的障碍。