引用 VBA 中的选项卡控件对象-杨雪
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


引用 VBA 中的选项卡控件对象

发表时间:2022/3/19 9:10:45 评论(0) 浏览(4178)  评论 | 加入收藏 | 复制
   
摘 要:可以使用选项卡控件来显示有关单个窗体的多页信息。
正 文:
当您的窗体包含可以分为两个或更多类别的信息时,选项卡控件很有用。
在大多数情况下,选项卡控件的工作方式与窗体上的其他控件一样,可以称为窗体的 Controls 集合的成员。 例如,要引用窗体 Form1 上名为 TabControl1 的选项卡控件,可以使用如下表达式:
Form1.Controls!TabControl1 
但是,由于 Controls 集合是 Form 对象的默认集合,因此不需要显式引用 Controls 集合。 也就是说,您可以从表达式中省略引用 Controls 集合,如下所示:
Form1!TabControl1 

引用 Pages 集合
一个选项卡控件包含一页或多页。 选项卡控件中的每个页面被引用为选项卡控件的 Pages 集合的成员。 Pages 集合中的每个页面都可以通过 PageIndex 属性设置 (它反映页面在集合中的位置(从 0) 开始)或页面的 Name 属性设置来引用。
TabControl 对象没有默认集合,因此当按 Pages 集合的索引值或 Pages 集合的属性引用 这些 项时,必须显式引用 Pages 集合。
例如,若要通过引用名为 TabControl1 的选项卡控件第一页的 Pages 集合中的索引值来更改该选项卡控件的 Caption 属性的值,可以使用以下语句:
TabControl1.Pages(0).Caption = "First Page" 
由于每页都是窗体的 Controls 集合的一个成员,因此可以仅通过 Name 属性来引用某页,而不引用选项卡控件的名称或其 Pages 集合。 例如,要更改 Name 属性设置为 Page1 的页面的 Caption 属性值,请使用如下语句:
Page1.Caption = "First Page" 

备   注:
如果用户或代码更改某页的 PageIndex 属性,则对该页索引的引用以及该页在页面顺序中的位置都会更改。 在这种情况下,如果您要保持对页面的绝对引用,请引用该页的 Name 属性。
Pages 集合 有一个属性 Count,该属性返回选项卡控件中的页数。 请注意,此属性不是该选项卡控件本身的属性,而是其 Pages 集合的属性,因此必须显式引用该集合。 例如,要确定 TabControl1 中的页数,请使用如下语句:
TabControl1.Pages.Count 
引用并更改当前页面
选项卡控件的默认属性是 Value,它返回一个标识当前页的整数:0 表示第一页,1 表示第二页,等等。 Value 属性仅在 VBA 代码或表达式中可用。 通过在运行时读取 Value 属性,可以确定当前哪一页在最上面。 例如,下面的语句返回 TabControl1 的当前页的值:
TabControl1.Value 

备   注:
由于 Value 属性是选项卡控件的默认属性,因此您不必显式引用该属性。 因此,可以省略 .Value 前面的示例。
在运行时设置选项卡控件的 Value 属性可以将焦点更改为指定页,从而使其成为当前页。 例如,下面的语句将焦点移动到 TabControl1 的第三页:
TabControl1 = 2 
如果将选项卡控件的 Style 属性设置为"无" (则此选项非常有用 (该控件不会显示选项卡) 并且希望使用窗体上的命令按钮来确定哪个页面具有焦点。 若要使用命令按钮显示页面,请向按钮 的 OnClick 事件添加事件过程,该事件过程将选项卡控件的 Value 属性设置为标识相应页面的整数。
通过将 Value 属性与 Pages 集合一起使用,您可以在运行时设置位于最上面的页面的属性。 例如,可以通过将页面的 Visible 属性设置为 False 来隐藏当前页面 及其 所有 控件。 下面的语句隐藏 TabControl1 的当前页:
TabControl1.Pages(TabControl1).Visible = False 

选项卡控件中的每个页面还有一个 PageIndex 属性,该属性通过使用与选项卡控件的 Value 属性相同的编号序列来指定页面在 Pages 集合中的位置:0 表示第一页,1 表示第二页,等等。 设置某页的 PageIndex 属性的值可以更改页面在选项卡控件中的显示顺序。 例如,如果要使名为 Page1 的页面成为第二页,可以使用下面的语句:
Page1.PageIndex = 1 
通常,PageIndex 属性是在设计时在页面的属性表中设置的。 您还可以通过右键单击选项卡控件的边框,然后单击快捷菜单上的" 页面 顺序"来设置页面顺序。

引用选项卡控件页上的控件
放在选项卡控件页上的控件是与窗体上所有控件相同的集合的组成部分。 为此,选项卡控件页上的每个控件都必须有一个名称,并且该名称与同一窗体上其他所有控件的名称都不同。 您可以使用引用没有选项卡控件的窗体上的控件的语法来引用选项卡控件页上的控件。
Forms!Employees!HomePhone 
由于窗体上的每个控件都有它自己的 Controls 集合,因此您还可以将选项卡控件上的控件作为其 Controls 集合的成员来引用。 例如,下面的代码枚举(列出)了 Employees 窗体的选项卡控件上的所有控件。
Sub ListTabControlControls() 
 
   Dim tabCtl As TabControl 
   Dim ctlCurrent As Control 
 
On Error GoTo ErrorHandler 
 
   ' 返回对员工表单上选项卡控件的引用. 
   Set tabCtl = Forms!Employees!TabCtl0 
 
   ' 列出调试窗口中选项卡控件上的所有控件. 
   For Each ctlCurrent In tabCtl 
      Debug.Print ctlCurrent.Name 
   Next ctlCurrent 
 
   Set tabCtl = Nothing 
   Set ctlCurrent = Nothing 
 
   Exit Sub 
 
ErrorHandler: 
   MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description 
End Sub

此外,选项卡控件上的每个页面都有它自己的 Controls 集合。 通过使用页面的 Controls 集合,可以引用每个页面上的控件。 下面的代码枚举了 Employees 窗体上选项卡控件的每个页面上的控件。

Sub ListPageControls() 
 
   Dim tabCtl As TabControl 
   Dim pagCurrent As Page 
   Dim ctlCurrent As Control 
   Dim intPageNum As Integer 
 
On Error GoTo ErrorHandler 
 
   ' 返回对员工表单上选项卡控件的引用. 
   Set tabCtl = Forms!Employees!TabCtl0 
 
   ' 列出调试窗口中选项卡控件上的所有控件.  

   For Each pagCurrent In tabCtl.Pages 
      intPageNum = intPageNum + 1 
      Debug.Print "Page " & intPageNum & " Controls:" 
      For Each ctlCurrent In pagCurrent.Controls 
         Debug.Print ctlCurrent.Name 
      Next ctlCurrent 
      Debug.Print 
   Next pagCurrent 
 
   Set tabCtl = Nothing 
   Set ctlCurrent = Nothing 
   Set pagCurrent = Nothing 
 
   Exit Sub 
 
ErrorHandler: 
   MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description 
End Sub

Access软件网交流QQ群(群号:198465573)
 
 相关文章
【access源码示例】自定义选项卡标签页显示位置(导航标签位于左...  【红尘如烟  2011/9/13】
Access快速开发平台--设置显示选项卡式菜单的方法  【麥田  2018/5/16】
【Access扫盲知识】怎么刷新选项卡页里面子窗体表的数据  【麥田  2018/7/24】
【Access选项卡示例】默认显示指定的选项卡页功能示例;选项卡默...  【麥田  2018/12/12】
【Access选项卡示例】锁定指定的选项卡页功能示例,锁定选项卡第...  【麥田  2018/12/22】
【Access选项卡示例】锁定选项卡页,其他选项卡页不能点的示例,...  【麥田  2018/12/29】
使选项卡中子窗体获得焦点并根据记录数执行条件语句  【杨雪  2019/3/15】
盟威Access快速开发平台上使用选项卡的心得分享  【小白不白  2019/11/19】
【Access示例】获取选项卡控件页面的名称  【伊西军  2019/12/11】
常见问答
技术分类
相关资源
文章搜索
关于作者

杨雪

文章分类

文章存档

友情链接