更改“ActiveControl”VBA Access按钮的名称

时间:2014-09-19 18:42:32

标签: vba ms-access access-vba ms-access-2010

我有一个带标签的按钮,按钮在单击后执行vba事件。我希望在事件结束后更改按钮上的标签和字体颜色。完成此任务的最佳方法是什么?我尝试使用Me!ActiveControl.Name但发现它是只读的,并且无法使用它更改名称。我应该注意表单执行一些sql并返回结果。我想要更改标签的按钮对从搜索/ SQL查询返回的每个记录执行操作。我还要注意,在SQL返回结果并且结果中的某些字段包含数据之后,按钮上的初始标签由控件源属性设置。

相关代码发布在下方。

Dim ctlLabelName As Control
Set ctlLabelName = Screen.ActiveControl

'A Whole bunch of stuff is here'

MsgBox "Hello" & ctlLabelName & "there", vbOKOnly, "Label Name"        
Me!ReprocessInvoice.Name = "processed"

3 个答案:

答案 0 :(得分:1)

“访问”命令按钮具有Caption属性。它是显示给用户的文本。文本内容和颜色都可以在运行时更改。

在此示例中,命令按钮名为 cmdTarget ,其标题文本设置为"在Form Load中以蓝色单击我" 。单击该按钮时,文本将更改为"已处理" 为黑色。

Option Compare Database
Option Explicit

Private Sub cmdTarget_Click()
    ' do other stuff here, then change caption and text color ...
    Me.cmdTarget.Caption = "processed"
    Me.cmdTarget.ForeColor = vbBlack
End Sub

Private Sub Form_Load()
    Me.cmdTarget.Caption = "click me"
    Me.cmdTarget.ForeColor = vbBlue
End Sub

实际上,将按钮的名称 cmdTarget 更改为其他内容必须在设计模式下完成...您无法执行此操作在窗体视图中打开窗体。但我无法想出从代码中更改按钮名称的充分理由。

答案 1 :(得分:0)

你能发布你的代码吗? 您应该能够通过使用来控制该控件 MyFormName.Controls(ActiveControl.Name).SomeProperty

答案 2 :(得分:0)

您无法在运行时更改控件的名称。