2013-03-12 33 views
2

我有一個帶有選項卡控件(稱爲TabCtrl)的MS Access窗體。這個控件有幾個頁面,每個頁面都有一個子窗體。如何通過VBA設置訪問選項卡控件的頁面名稱

Form_Open上,我想查詢子表單中的記錄總數,並將該數字放在標籤的名稱中。例如,名爲MYTAB的標籤應該成爲MYTAB(2)

Private Sub SetTabName_MyTab() 
    Dim i As Integer 
    i = CurrentDb.OpenRecordset("Select count(*) from [MyQry];").Fields(0).Value 
    TabCtrl.Pages("MyTab").Name = "MyTab (" & i & ")" 
End Sub 

然而,當我運行它,在最後一行返回運行時錯誤2136「設置該屬性,打開窗體或設計視圖中報告「。這是否意味着我無法在代碼中執行此操作?我應該使用另一個事件嗎?

回答

3

您正試圖更改控件的名稱internal,而不是標籤頁控件上的caption

嘗試:

ATabcontrol.Pages("MyTab").Caption = "MyTab(" & i & ")" 

注:我以前做過,發現這個問題與文本不改變,直到TabControl的被操縱。

+0

賓果!我很久以前就放棄了這個細節。我在Form's Open事件中測試了這個,並且迄今沒有發現任何問題。 – PowerUser 2013-10-30 18:03:44

+0

任何人都知道如何調整此代碼,以便它從子窗體內運行? – TCassa 2016-07-28 14:13:28

0

嘗試:

Dim s as string 

'To Get current Tab Caption 
s = Me.TabCtl.Pages(Me.TabCtl.Value).Caption 

'To Set current Tab Caption 
s = "TabName" 

Me.TabCtl.Pages(Me.TabCtl.Value).Caption = s 
相關問題