Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

WhereCondition für die Datenauswahl

Begonnen von SG05, April 23, 2017, 11:38:13

⏪ vorheriges - nächstes ⏩

SG05

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...

DF6GL

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.)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

DF6GL

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  :)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access