从表单打印子报表(Access 2016)

时间:2017-08-29 10:37:39

标签: vba ms-access access-vba ms-access-2016

我有一个带有选项卡控件的父窗体,每个选项卡都有一个报告。我正在尝试在主窗体上放置一个命令按钮,该按钮将在“活动”选项卡上打印“报告”。我强烈建议避免在每个报告上放置“打印”按钮。 到目前为止,我已经完成了以下工作:

1.我正在使用这行代码在打印预览中打开所选报告:

DoCmd.OpenReport Right(Me!Rpt0.SourceObject, Len(Me!Rpt0.SourceObject) - 7), acViewPreview

它看起来很复杂,因为当您将报表作为子表单时,源对象属性是Report.MyReport,因此我不得不删除“报表”。一部分。

到目前为止一切顺利。

2.我还根据保存报告的选项卡的索引命名了包含报告的所有控件。因此,第1页上的报告是Rpt0,第2页上的报告是Rpt1,依此类推。

  1. 我试图用这样的表达式替换该行代码中的“Rpt0”部分:

    myexp= "Rpt" & Me!TabCtl1.TabIndex
    

    所以上面的代码变成了:

    DoCmd.OpenReport Right(Me!myexp.SourceObject, Len(Me!myexp.SourceObject) - 7), acViewPreview    
    

    每次都会选择有效报告。

  2. 我的问题是Dim As和Set ..我不熟悉它们,似乎无论我尝试什么组合我得到“对象需要”错误,或者运行时错误'2465':不能找到字段“myexp”。

    提前谢谢

1 个答案:

答案 0 :(得分:0)

可能是:

DoCmd.OpenReport Right(Me(myexp).SourceObject, Len(Me(myexp).SourceObject) - 7), acViewPreview