检查在MS Access表单中单击/激活哪个选项卡

时间:2011-05-26 17:52:12

标签: vba ms-access access-vba

我在MS Access 2011中创建了一个表单,其中顶部有一个名为TabCtl18的选项卡控件,其中3个选项卡是page1,page2,page3。  在page1选项卡下还有另外3个其他标签页11,第22页,第33页,在三个标签下分别有3个报告

现在我希望当用户点击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

3 个答案:

答案 0 :(得分:4)

根据@David突出显示的问题,以下是检查所选TabPage名称的方法。

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

此外,您可以在Tab控件Click事件中使用此代码来检查哪个页面处于活动状态。

答案 1 :(得分:3)

选项卡控件的Value(默认值)属性是具有焦点的页面的索引。它从零开始。

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

答案 2 :(得分:0)

类似于@adarsh marecha,但我建议使用页面的TAG属性-如果页面顺序被更改,则使用索引可能无法按预期工作。另外,标签名也可以更改,这可能意味着代码失败。

如果将TAG属性设置为所需值,则可能只有您会使用它,因此,由于数据库更改而导致失败的可能性较小。

所以我的代码变成:

With Your_Form
   If !tabControl.Pages(!tabControl.Value).Tag = "Your tag" then
       'Do Something
   End if
End With