Wie kann ich Ausgabe eines Berichts im PDF-Format, in dem der Name der Werte aus Feldern besteht?
Frage
Ich möchte Funktionalität meines Access 2007 Bericht hinzufügen, wodurch eine PDF-Kopie des Berichts an dem Klick auf eine Schaltfläche erstellt wird. Ich weiß, dass es ein OutputTo
Makro, die das für mich tun kann, aber es erlaubt mir nicht, Bericht Feldwerte als Teil der PDF-Dateien Dateinamen enthalten, nämlich:
[Client Organisations].Code + "-" + Clients.Code + "-" + Invoices_Code + "-" + Format([Invoice Date],"yyyy") + ".pdf"
Während ich diese SO Frage , ich sieht nicht die Verwendung von Feldwerten in eine der Antworten.
Ich rechne damit, VBA-Code ist der Weg zu gehen, so dass ich (erfolglos) versucht, die folgenden:
Private Sub Create_PDF_Click()
DoCmd.OutputTo acOutputReport, , acFormatPDF, "" + [Client Organisations].Code
+ "-" + Clients.Code + "-" + Invoices_Code + "-" + Format([Invoice Date],"yyyy")
+ ".pdf", True
End Sub
Laufzeitfehler '2465':
Microsoft Office Access kann das Feld finden '|' bezeichnen in Ihrem Ausdruck
Alle Ideen da draußen?
Lösung
Ich habe es an der Arbeit (schließlich).
Die folgende sub
hat den Trick:
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
Zwei Einschränkungen:
- Der Bericht Bedürfnisse vor dem Drucken geöffnet werden.
- Siehe mit dem gleichen Namen auf Felder, dass der Bericht sieht es als. Das
[Client Organisations].Code
war[Client Organisations_Code]
in dem Bericht.
Andere Tipps
Es ist einfacher, eine Zeichenfolge Dim und Ihren gesamten Ausdruck dort setzen und es dann debuggen, um zu sehen, ob es die gültigen Berichtsnamen enthält.
Wie folgt aus:
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.