我期待根據客戶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。