我有一个名为“Query1”的查询,其中包含“Report_Name”字段。我还有三个名为“Rpt1,Prt3和Rpt5”的访问报告。在每个记录中将告诉将使用哪个报告名称。
我尝试使用if ... then myTestField.visable=true
,但查询中的文本字段太多,无法在代码中声明。
我还尝试使用Subform(访问中的子代码?)。报告表单中“格式化”中的me.Report_Name = Reports.Rpt5
。
以上两点都无法完成我的需求,我还没有太多代码。有什么想法实现这个目标吗?
答案 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
简而言之,这将打开与您的查询所拥有的行一样多的报告,在隐藏模式下,一次打开一个,同时打印一个。