我期待根据客户ID将多页访问报告拆分为单个pdf文件,然后根据客户名称(或ID)保存这些pdf文件。根据客户ID将多页MS Access报告拆分为单个pdf文件?
我已经研究过将报告“打印”/“转换”为一个大型pdf文件并将其拆分到那里,但一些客户发票跨越两个+页面,因此一页一页地分割一个pdf文件不会工作。
任何帮助将不胜感激;如果任何人需要更多的澄清任何事情,请不要犹豫,让我知道。
我期待根据客户ID将多页访问报告拆分为单个pdf文件,然后根据客户名称(或ID)保存这些pdf文件。根据客户ID将多页MS Access报告拆分为单个pdf文件?
我已经研究过将报告“打印”/“转换”为一个大型pdf文件并将其拆分到那里,但一些客户发票跨越两个+页面,因此一页一页地分割一个pdf文件不会工作。
任何帮助将不胜感激;如果任何人需要更多的澄清任何事情,请不要犹豫,让我知道。
使用Access 2007(请参阅下面的注释)或更高版本可以很容易。
使用WhereCondition
参数打开您的报告以将记录源限制为特定客户。
DoCmd.OpenReport "rptFoo", acViewPreview, , "Customer_ID = 1"
然后使用OutputTo将其保存为带有您提供的文件名的PDF。
DoCmd.OutputTo acOutputReport, "", acFormatPDF, "Spacely_Sprockets.pdf"
之后关闭报告。
DoCmd.Close acReport, "rptFoo"
您可以创建它会显示Customer_ID
和Customer_Name
数据的记录过程,然后使用这些命令3从各行的值。
如果您的Access版本比2007年早,那么您必须告诉我们您用于创建PDF文件的方法。
注意:对于Access 2007,Office Service Pack 2提供了Built-in Save As PDF/XPS support。
PDF打印可用的MS Access 2010年,2007年,您可以安装微软的附加:前Print, share, and protect files in the PDF and XPS file formats
对于版本2007,您可以使用:
斯蒂芬LeBan的ReportToPDF只包含两个DLL,但仅适用于MS Access
CutePDF是免费且易于使用的。
PDFCreator也是免费的,可以用VBA实现完全自动化(虽然我最近没有使用过它,我相信这个功能仍然可用)
任意数量的付费PDF创造者。
的自2003 version(也OpenReport 2010)
WHERE论据的OpenReport已提供给打印所有客户的一份报告,2003年版,2007年和2010年,您可以通过相关文件和
环Dim rs AS DAO.Recordset
Set rs = CurrentDB.OpenRecordset("SELECT DISTINCT CustimerID FROM Invoices")
Do While Not rs.EOF
''expression.OpenReport(ReportName, View, FilterName,
'' WhereCondition, WindowMode) -- 2010 has OpenArgs
DoCmd.OpenReport "Invoices",<..>,,"CustomerID=" & rs!CustomerID
''OutputTo or other relevant code
rs.MoveNext
Loop
获取PDF然后取决于您的版本和安装的工具。例如,如果您正在使用PDFCreator或CutePDF,则可以使用acViewNormal
作为视图。 PDFCreator设置将允许您提前分配一个文件名,对于CutePDF,您将不得不填写一个文件名。对于Access 2007和2010,您可以使用OutputTo
,如前所述,所以acViewPreview
是最好的。
要通过电子邮件发送2007年和2010年的报告,您可以使用SendObject。对于较早的版本,您将需要更多的代码。最简单的选择可能是自动化Outlook。