2014-09-19 37 views
0

我有一個帶有標籤的按鈕,按鈕在單擊後執行vba事件。我想在事件結束後更改按鈕上的標籤和字體顏色。什麼是完成這個最好的方法?我嘗試使用Me!ActiveControl.Name,但發現它是隻讀的,使用它的名稱不能更改。我應該注意到,表單執行一些sql並返回結果。我想要更改標籤的按鈕對從搜索/ SQL查詢返回的每個記錄執行操作。我還想指出,在SQL返回結果並且結果中的某些字段有數據之後,按鈕上的初始標籤由控件源屬性設置。更改「ActiveControl」VBA訪問按鈕的名稱

相關的代碼在下面發佈。

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" 
+0

試圖更改名稱或文本?可能是尋找.Text不是.Name屬性 – Gratzy 2014-09-19 18:46:32

回答

0

你可以發佈你的代碼嗎? 您應該可以通過使用 MyFormName.Controls(ActiveControl.Name).SomeProperty

+0

是的,我把它貼在上面。 – Dude 2014-09-19 18:58:21

0

您可以在運行時更改控件的名稱。

1

訪問命令按鈕有一個Caption屬性。這是顯示給用戶的文本。文本內容和顏色都可以在運行時更改。

在這個例子中,命令按鈕命名爲cmdTarget和它的標題文本設置爲「點擊我」藍色在窗體加載。點擊按鈕後,文本將變爲「已處理」黑色。

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別的東西,必須從設計模式來完成......你不能與窗體窗體視圖中打開做到這一點。但我想不出從代碼中改變按鈕名稱的好理由。