如何在ms-access vba中单击命令按钮单击以更改代码以更改控件属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在ms-access vba中单击命令按钮单击以更改代码以更改控件属性相关的知识,希望对你有一定的参考价值。
我有一个userform,其中包含一组具有类似属性和功能的命令按钮。我正在使用这些按钮让用户跟踪他的活动。所以例如每当用户点击“生产”按钮时,应用程序标签就会显示“生产”模式,当用户按下“中断”按钮时,标签将从“生产”模式变为“中断”模式,同样我总共有7-8个按钮在同一表格上。其他条件是按下任何按钮,按钮应该被禁用,所有其他按钮应该被启用,然后是下一个按钮,如果按下它应该被禁用,它应该启用之前按下的按钮。
按下的按钮也会改变颜色,还应将前一个按钮的颜色恢复正常。
我理解这个场景很难理解,请查看下面的代码,了解我的一个按钮及其工作情况。
Private Sub btn1()
Me.Label78.Caption = Me.btn1.Caption
Me.btn1.BackColor = RGB(250, 100, 100)
Me.btn1.Gradient = 12
Me.btn1.Enabled = False
Me.btn2.Enabled = True
Me.btn2.BackColor = RGB(100, 250, 100)
Me.btn2.Gradient = 12
Me.btn3.Enabled = True
Me.btn3.BackColor = RGB(100, 250, 100)
Me.btn3.Gradient = 12
End Sub
上面的代码工作perfeclty并将属性更改为3个按钮(其示例代码不是所有7个按钮的代码),但我总共有7-8个按钮,如果我继续编写这种代码,我可能会在将来添加更多按钮在所有7-8个按钮的一个按钮中,则需要花费大量时间和效果。
那么缩短这段代码的最佳方法是什么?
我知道这有点复杂,因此请询问是否需要更多信息。提前致谢 !!
答案
你可以有一个辅助子功能:
Private Sub SetButton(ByVal ButtonId As Long, ByVal Enabled As Boolean)
Dim BackColor As Long
If Enabled Then
BackColor = RGB(100, 250, 100)
Else
BackColor = RGB(250, 100, 100)
End If
With Me("btn" & Cstr(Id))
.Enabled = Enabled
.Gradient = 12
.BackColor = BackColor
End With
End Sub
然后在OnClick事件中调用它,如:
For Id = 1 To 8
Select Case Id
Case 1, 2, 4, 7
SetButton Id, True
Case Else
SetButton Id, False
End Select
Next
以上是关于如何在ms-access vba中单击命令按钮单击以更改代码以更改控件属性的主要内容,如果未能解决你的问题,请参考以下文章