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

Posted

技术标签:

【中文标题】如何通过 VBA 设置访问选项卡控件的页面名称【英文标题】:How to set an Access Tab Control's page name by VBA 【发布时间】:2013-03-12 22:40:09 【问题描述】:

我在 MS Access 中有一个带有选项卡控件的表单(称为 TabCtrl)。这个控件有几个页面,每个页面都有一个子表单。

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“要设置此属性,请在设计视图中打开表单或报表”。这是否意味着我不能在代码中执行此操作?我应该使用另一个事件吗?

【问题讨论】:

【参考方案1】:

您正在尝试更改控件的internal 名称,而不是标签页控件上的caption

试试:

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

注意:我以前做过这个,发现在操作 tabcontrol 之前文本不会改变的问题。

【讨论】:

宾果游戏!我早就放弃了这个细节。我在 Form 的 Open 事件中对此进行了测试,目前没有发现任何问题。 有谁知道如何调整这段代码,让它在子表单中运行?【参考方案2】:

试试:

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

【讨论】:

以上是关于如何通过 VBA 设置访问选项卡控件的页面名称的主要内容,如果未能解决你的问题,请参考以下文章

访问 VBA 以打开/激活数据库表

使用 VBA 获取 Excel 选项卡名称并复制到 Access 表

如何通过标签页的名称关闭 tabcontrol 上的标签页

WPF 选项卡控件:如何获取当前选定的选项卡?

如何运行 VBA 循环来格式化每个工作表并创建摘要选项卡

vba中tab空格怎么设置