如何通过VBA设置访问选项卡控件的页面名称

问题描述:

我有一个带有选项卡控件(称为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“设置该属性,打开窗体或设计视图中报告“。这是否意味着我无法在代码中执行此操作?我应该使用另一个事件吗?

您正试图更改控件的名称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

尝试:

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