Как я могу произвести отчет в формате PDF, где имя состоит из значений от полей?

Я хочу добавить функциональность к своему отчету о Доступе 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 не может найти поле '|' упомянутым в Вашем выражении

Какие-либо идеи там?

5
задан Community 23 May 2017 в 12:07
поделиться

2 ответа

Я заставил его работать (в конце концов).

Следующий 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

Два предостережения:

  1. Отчет должен быть открыт перед печатью.
  2. Обращайтесь к полям под тем же именем, под которым их видит отчет. Чтобы [Клиентские организации].Код был [Код_клиентских_организаций] в отчете.
15
ответ дан 18 December 2019 в 10:44
поделиться

Легче затемнить строку и поместить туда все выражение, а затем отладить его, чтобы увидеть, содержит ли оно правильное имя отчета.

Вот так:

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.
1
ответ дан 18 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: