检查MS Access窗体中的哪个选项卡被点击/激活

问题描述:

我在MS Access 2011中创建了一个表单,其中有一个名为TabCtl18的顶部的选项卡控件,其中3个选项卡是page1,page2,page3。 在page1选项卡下还有另外3个其他选项卡page11,page22,page33,在三个选项卡下分别有3个报告检查MS Access窗体中的哪个选项卡被点击/激活

现在我希望当用户点击pdf图标时,检查哪个选项卡已经点击并打印该报告。

我的代码:

Private Sub cmdPrintReportPDF_Click() 

    If TabCtl18.TabIndex = 0 Then 

     If tab_graph.TabIndex = 0 Then 

      DoCmd.OpenReport "Graph_report", acViewNormal 
      DoCmd.OutputTo acOutputReport, "Graph_report" 
      DoCmd.Close acReport, "Graph_report" 

     End If 
    Else 
     If tab_graph.TabIndex = 2 Then 

      DoCmd.OpenReport "Graph_Report_FieldShifts", acViewNormal 
      DoCmd.OutputTo acOutputReport, "Graph_Report_FieldShifts" 
      DoCmd.Close acReport, "Graph_Report_FieldShifts" 
     End If 

    End If 
End Sub 

价值(这是默认设置)选项卡控件的属性与焦点的页面的索引。它从零开始。

If TabCtl18.Value = 0 Then 
    'this must be the first page 
+2

给选项卡控件添加有意义的名称并使用它们会更好,因为如果添加选项卡,名称不会更改,但选项卡索引可以更改。 – 2011-05-28 22:16:31

基于由@大卫突出问题,这里是检查选择的TabPage的名称的方式。

if tabControl1.Pages(tabControl1.Value).Caption = "TabPageName" then 
    'Do Something 
end if 

此外,您可以使用此代码Tab控制Click事件检查哪个页面是有效的。