名前がフィールドの値で構成されるレポートを PDF 形式で出力するにはどうすればよいですか?
質問
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 つの注意点:
- 印刷する前にレポートを開く必要があります。
- レポートで認識されるのと同じ名前のフィールドを参照します。それ
[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.
所属していません StackOverflow