Microsoft Access - 一键打印多个报告

时间:2016-10-31 07:19:58

标签: vba ms-access

我有一个名为“Query1”的查询,其中包含“Report_Name”字段。我还有三个名为“Rpt1,Prt3和Rpt5”的访问报告。在每个记录中将告诉将使用哪个报告名称。

我尝试使用if ... then myTestField.visable=true,但查询中的文本字段太多,无法在代码中声明。

我还尝试使用Subform(访问中的子代码?)。报告表单中“格式化”中的me.Report_Name = Reports.Rpt5

以上两点都无法完成我的需求,我还没有太多代码。有什么想法实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

这是我对你想要完成的事情的最佳猜测:

Private Sub ButtonPrint_Click()
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim qdf As DAO.QueryDef

Set db=CurrentDB

Set qdf = db.QueryDefs("YourQuery") 'Change this to your query name

Set rs = qdf.OpenRecordset()

Do While Not rs.EOF
    DoCmd.OpenReport rs!Report_Name, acViewPreview, , , acHidden
    DoCmd.SelectObject acReport, rs!REPORT_NAME
    DoCmd.PrintOut acSelection
    DoCmd.Close acReport, rs!Report_Name
    rs.MoveNext
Loop

rs.Close
Set rs = Nothing
Set qdf = Nothing
Set db = Nothing

End Sub

简而言之,这将打开与您的查询所拥有的行一样多的报告,在隐藏模式下,一次打开一个,同时打印一个。