从窗体打印子报表(Access 2016)
问题描述:
我有一个带有选项卡控件的父窗体,每个窗体都有一个报表。我正在尝试在我的主窗体上放置一个命令按钮,以便在活动选项卡上打印报告。我强烈地试图避免在每个报告上放置“打印”按钮。 到目前为止,我已经做了以下内容:从窗体打印子报表(Access 2016)
1.I我使用这行代码来打开打印预览所选报告:
DoCmd.OpenReport Right(Me!Rpt0.SourceObject, Len(Me!Rpt0.SourceObject) - 7), acViewPreview
它看起来那么复杂,因为当你有一个报告子窗体源对象属性是Report.MyReport,所以我不得不消除“报告”。部分。
到目前为止这么好。
2.我也根据包含它们的选项卡的索引,命名了所有控制报告的控件。所以,第1页的报告是Rpt0,第2页是Rpt1等等。
-
我试图用表达看起来像这样,以取代在该行上的代码的“Rpt0”部分:
myexp= "Rpt" & Me!TabCtl1.TabIndex
所以上面的代码变为:
DoCmd.OpenReport Right(Me!myexp.SourceObject, Len(Me!myexp.SourceObject) - 7), acViewPreview
并且每次选择活动报告。
我的问题是与灰暗和设置..我不熟悉它们,似乎任何组合我尝试,我得到一个“所需的对象”的错误,或者或运行时错误“2465” :找不到字段“myexp”。
预先感谢您
答
这可能是:
DoCmd.OpenReport Right(Me(myexp).SourceObject, Len(Me(myexp).SourceObject) - 7), acViewPreview
非常感谢您!古斯塔夫这非常简单..!如果其他人有同样的问题,最终的代码是:Private Sub Print_Report_Click() Dim sbfname As String sbfname =“Rpt”&Me.TabCtl1 DoCmd.OpenReport Right(Me(sbfname).SourceObject,Len(Me (sbfname).SourceObject) - 7),acViewPreview End Sub'(如果有人知道如何在这里添加空格,请做)。我还用'Me.Tabctl1'取代了'Me!tabctl1.TabIndex',因为第一个总是给我第一页,而不是“可见”。 – aran0ia
太棒了!您可以将最终代码附加到您的问题中,以使其更具可读性。 – Gustav