Hallo zusammen,
ich erzeuge mit folgendem Code einen Bericht:
DoCmd.OutputTo acOutputReport, "MeinBericht", acFormatPDF, "C:\Inventar_" & Format(LfdInventarNr, "00") & ".pdf"
Gerne würde ich den Bericht aus weiteren Formularen aufrufen. Normalerweise benutze ich die "WhereCondition".
Beispiel, wenn ich den Bericht "nur" öffne:
DoCmd.OpenReport stDocName, acNormal, , "LfdInventarNr= Forms!MeinFormular01!LfdInventarNr"
Steht die "WhereCondition" bei "Output" nicht zur Verfügung?
Danke für Eure Unterstützung...
Hallo,
nein, eine Where-Condition-Übergabe bei Outputto steht nicht zur Verfügung.
Es muss der SQL-String der zugrundeliegenden Berichts-Abfrage ("abf_rptInventar") modifiziert werden.
Z. B. mit Hilfe einer Vorlage-Auswahlabfrage ("abf_rptInventar_Template") ohne Where und Order/Group By ("Select * From Tabelle1;") :
.
.
Currentdb.Querydefs!abf_rptInventar.SQL= Replace(Currentdb.Querydefs!abf_rptInventar_Template.SQL,";","LfdInventarNr= " & Me!LfdInventarNr) 'wenn inventarNr den Datentyp Long besitzt
DoCmd.OutputTo acOutputReport, "MeinBericht", acFormatPDF, "C:\Inventar_" & Format(LfdInventarNr, "00") & ".pdf"
Dies ist nur beispielhaft zu sehen. Es gibt bessere Methoden, die Where-Condition einzufügen.
(Zuweisen eines direkt mit VBA generierten SQL-Strings an die Abfrage-Eigenschaft, Verwenden eines Where-Conditions-Parameters, Verwenden der Abfrage-Parameters-Auflistung usw.)
Zitat von: DF6GL am April 23, 2017, 13:38:31nein, eine Where-Condition-Übergabe bei Outputto steht nicht zur Verfügung.
Es muss der SQL-String der zugrundeliegenden Berichts-Abfrage ("abf_rptInventar") modifiziert werden.
Die erste Aussage ist korrekt, aber es gibt eine einfachere Möglichkeit dasselbe Ergebnis zu erreichen, ohne die SQL-Abfrage zu ändern.
1. Den Bericht in der Vorschau-Ansicht mit der gewünschten Where-Condition öffnen. Das kann auch unsichtbar (
acHidden) erfolgen.
2. Dann einfach DoCmd.OutputTo für diesen Bericht aufrufen. Dann wird er so, wie er bereits geöffnet ist, ausgegeben.
Hi,
ja, in der Tat, die einfachste Methode habe ich außen vor gelassen, gemäß der Prämisse: Warum einfach, wenn es auch kompliziert geht... :o :)