2011-05-24 29 views
0

我在Access 2010中創建了我的表單中的PDF圖標。此表單中有3個選項卡;每個選項卡都有一個單獨的表單頁面,PDF圖標對於所有選項卡都很常見。訪問表單:如何獲取訪問表單的PDF

現在我希望每當用戶點擊該圖標時,就會創建該表單的PDF文件。

我寫了這個代碼

Private Sub cmdPrintReportPDF_Click() 

    Dim strDefaultPrinter As String 
    strDefaultPrinter = Application.Printer.DeviceName 

    **Set Application.Printer = Application.Printers("PDFCreator")** 
    'DoCmd.PrintOut acPrintAll 

    DoCmd.OpenReport "Graph_report", acViewNormal 

    Set Application.Printer = Application.Printers(strDefaultPrinter) 
End Sub 

但我發現了以下錯誤:

Invalid procedure call or argument on line no 4. 
Set Application.Printer = Application.Printers("PDFCreator") 
+0

我相信他所得到的是,當一個命令按鈕被選中時,他希望表單被自動打印成PDF格式......但我建議他用報表來代替。 – 2011-05-24 16:44:33

+0

是的,我想要點擊按鈕,它將我當前的表單轉換爲pdf格式 – 2011-05-24 17:08:32

回答

2

我已經安裝的PDFCreator和這條線,這將觸發一個錯誤的你,不不會爲我引發錯誤。

Set Application.Printer = Application.Printers("PDFCreator") 

轉到VB編輯器立即窗口,看看你還可以得到這一行錯誤:

? Application.Printers("PDFCreator").DeviceName 

如果這也觸發了錯誤,你可能沒有打印機其DeviceName是PDFCreator。您可以使用此過程列出打印機的名稱。

Public Sub ListPrinters() 
    Dim objPrinter As Printer 

    For Each objPrinter In Application.Printers 
     Debug.Print objPrinter.DeviceName 
    Next objPrinter 
End Sub 

然而,與Access 2010,我想你可以不使用您的PDFCreator打印設備創建一個PDF文件。至少這對我來說適用於Access 2007,所以我猜它會適合你。

Private Sub cmdSaveAsPdf3_Click() 
    Dim strPath AS String 
    strPath = CurrentProject.Path & Chr(92) & "Sample3.pdf" 
    DoCmd.OutputTo acOutputForm, "fsubSample3", acFormatPDF, strPath 
End Sub 

那個按鈕點擊代碼創建嵌入在我的主窗體的選項卡控制...的頁面的PDF形式(Sample3.pdf)(fsubSample3),這就是你要在原有基礎上的版本我的想法你的問題。現在看來你想創建一個報告的PDF而不是表單。您可以調整DoCmd.OutputTo行以使用報表而不是表單。

0

更改此:

Set Application.Printer = Application.Printers("PDFCreator") 

...這樣的:

Application.Printer = Application.Printers("PDFCreator") 

Application.Printer是一個屬性,而不是一個對象,所以它不使用SET去改變它。