如何以PDF格式输出报告,其中名称由字段中的值组成?

Zai*_*aid 5 ms-access vba report save-as

我想在Access 2007报告中添加功能,只需单击按钮即可创建报告的PDF副本.我知道有一个OutputTo宏可以为我做这个,但它不允许我将报告字段值包含在PDF文件名的一部分,即:

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

虽然我已经看到了这个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
Run Code Online (Sandbox Code Playgroud)

运行时错误'2465':

Microsoft Office Access找不到字段"|" 在你的表达中提到

有什么想法吗?

Zai*_*aid 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
Run Code Online (Sandbox Code Playgroud)

两个警告:

  1. 报告需要在打印前打开.
  2. 请使用报告所看到的相同名称引用字段.那[Client Organisations].Code[Client Organisations_Code]在报告中.