名前がフィールドの値で構成されるレポートを PDF 形式で出力するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2296884

  •  21-09-2019
  •  | 
  •  

質問

Access 2007 レポートに、ボタンをクリックするだけでレポートの PDF コピーが作成される機能を追加したいと考えています。があることは知っています OutputTo このマクロを使用すると、これを行うことができますが、PDF のファイル名の一部としてレポート フィールドの値を含めることはできません。つまり、次のようになります。

[Client Organisations].Code + "-" + Clients.Code + "-" + Invoices_Code + "-" + Format([Invoice Date],"yyyy") + ".pdf"

これを見ているうちに MSDN スレッド この それで質問, どの回答にもフィールド値が使用されていません。

VBA コードが最適だと思うので、次のことを (失敗しました) 試しました。

Private Sub Create_PDF_Click()
DoCmd.OutputTo acOutputReport, , acFormatPDF, "" + [Client Organisations].Code  
+ "-" + Clients.Code + "-" + Invoices_Code + "-" + Format([Invoice Date],"yyyy")
+ ".pdf", True
End Sub

実行時エラー「2465」:

Microsoft Office Accessはフィールドを見つけることができません '|'あなたの表現で言及されています

何かアイデアはありますか?

役に立ちましたか?

解決

(最終的には)動作するようになりました。

次の sub トリックを実行しました:

Private Sub Create_PDF_Click()

Dim myPath As String
Dim strReportName As String

DoCmd.OpenReport "Invoices", acViewPreview

myPath = "C:\Documents and Settings\"
strReportName = Report_Invoices.[Client Organisations_Code] + "-" +
Report_Invoices.Clients_Code + "-" + Report_Invoices.Invoices_Code + "-" +
Format(Report_Invoices.[Invoice Date], "yyyy") + ".pdf"

DoCmd.OutputTo acOutputReport, "", acFormatPDF, myPath + strReportName, True
DoCmd.Close acReport, "Invoices"

End Sub

2 つの注意点:

  1. 印刷する前にレポートを開く必要があります。
  2. レポートで認識されるのと同じ名前のフィールドを参照します。それ [Client Organisations].Code だった [Client Organisations_Code] 報告書の中で。

他のヒント

その簡単に文字列を暗くし、そこにあなたの全体の表現を入れて、それが有効なレポート名が含まれているかどうかを確認するために、それをデバッグする。

このように:

Dim strReportName as String

strReportName = [Client Organisations].Code   
+ "-" + Clients.Code + "-" + Invoices_Code + "-" + Format([Invoice Date],"yyyy") 
+ ".pdf"

//then try to print strReportName before you use DoCmd.OutputTo.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top