使用保存的报告模板并更新记录源,然后保存到文件



我正在尝试输出报告。 它们都遵循相同的信息,只是针对不同的经理。 我似乎无法获得任何正确的语法来修改必要的部分(记录源、标题和 1 个将包含设置字符串的字段(。 我不知道它问我什么,我可以获取代码来查找下一个经理名称(记录源(并循环浏览它们。 我可以毫无问题地将代码输出到 PDF 文件。 我需要弄清楚下面的相关代码。 这可能是完全错误的。我还没有真正处理过报告。

DoCmd.OpenReport "rptUsageReportTemplate", acViewReport
Reports("rptUsageReportTemplate").RecordSource = MngrUsgRptStr
Reports("rptUsageReportTemplate").Caption = MngrName & "'s " & Mnth & " Usage Report"
Reports("rptUsageReportTemplate").Controls("fldManagerHeader") = MngrName & "'s " & Mnth & " Usage Report"
Reports("rptUsageReportTemplate").Requery
DoCmd.Close acReport, "rptUsageReportTemplate", acSaveYes

"docmd.openreport"在那里,因为我无法停止收到错误2451 - 您输入的报告名称拼写错误或引用未打开或不存在的报告。 我知道它存在,我知道它的拼写正确。 所以它必须是一个开放的东西。 如果我可以在后台获得输出报告的访问权限,而无需查看报告打开和关闭,那就太好了。

简而言之,我想要的是将我保存的报告作为模板,只需多次更新值并将其保存到文件中。

假设你有一个"经理"表或类似的表(tblManagersOrSuch(,以下未经测试的子应该会让你开始......

Sub DoManagersReport(Mnth As Integer)
Dim rsManagers As DAO.Recordset
Set rsManagers = CurrentDb.OpenRecordset("tblManagersOrSuch")
If Not rsManagers.EOF Then
rsManagers.MoveFirst
Do Until rsManagers.EOF
DoCmd.OpenReport "rptUsageReportTemplate", acViewPreview, , , acHidden
Reports("rptUsageReportTemplate").Caption = rsManagers!ManagerID & "'s " & Mnth & " Usage Report"
Reports("rptUsageReportTemplate").Controls("fldManagerHeader") = rsManagers!ManagerID & "'s " & Mnth & " Usage Report"
Reports("rptUsageReportTemplate").RecordSource = "Select * from MngrUsgRptStr Where ManagerID = " & rsManagers!ManagerID
DoEvents
Reports("rptUsageReportTemplate").Visible = True
DoCmd.OutputTo acOutputReport, "rptUsageReportTemplate", acFormatPDF, "C:" & rsManagers!ManagerID & " " & Mnth & " Usage Report.pdf"
DoEvents
DoCmd.Close acReport, "rptUsageReportTemplate"
Loop
End If
'add error handling 
End Sub

请注意,设置记录源会强制重新查询,因此您不需要这样做。 我还建议添加一个文件保存为函数来确定保存文件夹...

相关内容

最新更新