Image 如何使用VBA更改按钮';是否将图片转换为其中一个嵌入的默认图像?

Image 如何使用VBA更改按钮';是否将图片转换为其中一个嵌入的默认图像?,image,ms-access,button,vba,ms-access-2013,Image,Ms Access,Button,Vba,Ms Access 2013,当我点击一个按钮时,我试图让它从“向左箭头”变为“向右箭头”,但我不知道如何通过VBA分配图像。我试过了!btnCollapseUnscheduled.Picture=“Arrow Left”,但我通过这种方式收到一条错误消息。您可以创建两个按钮,其中一次只能看到一个按钮,两个按钮都调用相同的代码 单击其中一个按钮时,取消隐藏另一个按钮,将焦点设置为此,然后隐藏第一个按钮。反之亦然。您可以创建两个按钮,一次只能看到一个按钮,两个按钮调用相同的代码 单击其中一个按钮时,取消隐藏另一个按钮,将焦点设

当我点击一个按钮时,我试图让它从“向左箭头”变为“向右箭头”,但我不知道如何通过VBA分配图像。我试过了!btnCollapseUnscheduled.Picture=“Arrow Left”,但我通过这种方式收到一条错误消息。

您可以创建两个按钮,其中一次只能看到一个按钮,两个按钮都调用相同的代码


单击其中一个按钮时,取消隐藏另一个按钮,将焦点设置为此,然后隐藏第一个按钮。反之亦然。

您可以创建两个按钮,一次只能看到一个按钮,两个按钮调用相同的代码


单击其中一个按钮时,取消隐藏另一个按钮,将焦点设置为此,然后隐藏第一个按钮。反之亦然。

诀窍是使用图标的完整文件路径

MS Access可能会使用一些图标映射作为其本机图标,因此您可能不会很幸运地找到其中一个图标的路径

如果您确实找不到本机MS Access图标的路径,您可以随时通过谷歌图像搜索箭头图标(指定16 x 16像素的精确大小)

然后,您可以将这些图标保存到您选择的文件夹中,然后在下图中使用这些路径

如果您只想让按钮在第一次单击时更改其图像,然后保持这种状态

  • 确保按钮在设计视图中没有附加图片
  • 使用窗体的打开事件,将默认图像的完整路径指定给命令按钮:
  • 私有子表单\u打开(取消为整数)
    Me.cmdButton.Picture=“C:\myFolder\myDefaultIcon.png”
    端接头
    
  • 然后在按钮的单击事件中,将
    .picture
    属性指定给要将其更改为的图标路径:
  • Private Sub-cmdButton\u Click()
    Me.cmdButton.Picture=“C:\myFolder\myChangedIcon.png”
    端接头
    
    如果您只想每次单击按钮时在两个图像之间切换,请执行以下操作:

  • 使用切换按钮控件而不是命令按钮控件
  • 确保按钮在设计视图中没有附加图片
  • 编写一个子程序,用于处理切换按钮的不同开/关状态:
  • Public Sub-togImg()
    如果_
    Me.togButton=-1_
    然后
    Me.togButton.Picture=“C:\myFolder\myChangedIcon.png”
    其他的
    Me.togButton.Picture=“C:\myFolder\myDefaultIcon.png”
    如果结束
    端接头
    
  • 从窗体的打开事件和切换按钮的单击事件调用sub:
  • 私有子表单\u打开(取消为整数)
    托吉姆
    端接头
    私有子按钮点击()
    托吉姆
    端接头
    
    诀窍是使用图标的完整文件路径

    MS Access可能会使用一些图标映射作为其本机图标,因此您可能不会很幸运地找到其中一个图标的路径

    如果您确实找不到本机MS Access图标的路径,您可以随时通过谷歌图像搜索箭头图标(指定16 x 16像素的精确大小)

    然后,您可以将这些图标保存到您选择的文件夹中,然后在下图中使用这些路径

    如果您只想让按钮在第一次单击时更改其图像,然后保持这种状态

  • 确保按钮在设计视图中没有附加图片
  • 使用窗体的打开事件,将默认图像的完整路径指定给命令按钮:
  • 私有子表单\u打开(取消为整数)
    Me.cmdButton.Picture=“C:\myFolder\myDefaultIcon.png”
    端接头
    
  • 然后在按钮的单击事件中,将
    .picture
    属性指定给要将其更改为的图标路径:
  • Private Sub-cmdButton\u Click()
    Me.cmdButton.Picture=“C:\myFolder\myChangedIcon.png”
    端接头
    
    如果您只想每次单击按钮时在两个图像之间切换,请执行以下操作:

  • 使用切换按钮控件而不是命令按钮控件
  • 确保按钮在设计视图中没有附加图片
  • 编写一个子程序,用于处理切换按钮的不同开/关状态:
  • Public Sub-togImg()
    如果_
    Me.togButton=-1_
    然后
    Me.togButton.Picture=“C:\myFolder\myChangedIcon.png”
    其他的
    Me.togButton.Picture=“C:\myFolder\myDefaultIcon.png”
    如果结束
    端接头
    
  • 从窗体的打开事件和切换按钮的单击事件调用sub:
  • 私有子表单\u打开(取消为整数)
    托吉姆
    端接头
    私有子按钮点击()
    托吉姆
    端接头
    
    在Access 2010或更高版本中,您可以将图像存储在MSysResources系统表中。然后为命令按钮的“图片类型”属性选择“共享”,并选择其中一个共享图像

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

    选项比较数据库
    选项显式
    专用子CMDROW_Click()
    作为字符串的Dim strDirection
    如果我!cmdArrow。然后像“*左”这样的图片
    strDirection=“右”
    其他的
    strDirection=“左”
    如果结束
    我cmdArrow.Picture=“Arrow”&strDirection
    我txtImage.Value=Me!箭头。图片
    端接头
    专用子表单_加载()
    我txtImage.Value=Me!箭头。图片
    端接头
    
    截图:

    最大的挑战是将图像加载到MSysResources中。我创建了一个一次性表单并添加了一个命令按钮。接下来,我选择Embedded作为按钮的图片类型属性,并从可用选项中选择向左箭头。然后,我将图片类型从Embedded更改为Shared,这在MSysResources中添加了一行,在附件字段中添加了图像数据,在name字段中添加了我的命令按钮的名称。于是我打开桌子,把名字改成“向左箭头”