我在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
答案 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