Wie kann ich Ausgabe eines Berichts im PDF-Format, in dem der Name der Werte aus Feldern besteht?

StackOverflow https://stackoverflow.com/questions/2296884

  •  21-09-2019
  •  | 
  •  

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?

War es hilfreich?

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:

  1. Der Bericht Bedürfnisse vor dem Drucken geöffnet werden.
  2. 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.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top