5

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

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

このMSDNスレッドとこのSOの質問を見たことがありますが、どの回答にもフィールド値が使用されていません。

私は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 はフィールド '|' を見つけることができません あなたの表現で言及されている

そこに何かアイデアはありますか?

4

2 に答える 2

15

私はそれを機能させました(最終的に)。

以下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]ありました。
于 2010-02-20T10:29:05.863 に答える
1

文字列を暗くして式全体をそこに配置し、デバッグして有効なレポート名が含まれているかどうかを確認する方が簡単です。

このような:

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.
于 2010-02-19T14:20:44.637 に答える