none
Erstellen einer PDF-Dstei mit unterschiedlichen Datenquellen

    Frage

  • Hallo zusammen,

    im Rahmen einer Auftragsverwaltung gibt es Kundenbestellungen. Daraus resultieren Auftragsbestätigungen (AB). Rechnungen (RG) und Lieferscheine (LS). Die Waren sind auf verschiedenen Aussenlager verteilt. Deshalb müssen aus den Bestelldaten zu 1 AB bzw. 1 RG mehrere LS als pdf-Datei erzeugt und per eMail verschickt werden. Die 1 AB und die 1 RG und den email-Versand habe ich gelöst. Die pdf-Datei wird erzeugt über 
    DoCmd.OutputTo acOutputReport, "rptLieferschein", acFormatPDF, m_strAnhang
    und als Anhang einer Outlook-Mail verschickt.

    Beim Aufteilen der Lieferscheine auf die verschiedenen Außenlager bin ich soweit, dass ich je Außenlager die alle benötigten Daten für den Lieferschein. in einem recordset habe. Ab ich kann bei OutputTo dieses recordset nicht als Datenquelle zuweisen. Und beim Öffnen der Berichts rptLieferschein ist das recordset ja nicht mehr verfügbar.

    Und jetzt weiss ich leider nicht mehr weiter und hoffe auf Eure Hilfe. Vielen Dank im Voraus.

    Wilhelm Hanselmann

    Dienstag, 26. März 2013 19:10

Antworten

  • Hallo,

    WHans wrote:

    [...] Die pdf-Datei wird
    erzeugt über  DoCmd.OutputTo acOutputReport, "rptLieferschein",
    acFormatPDF, m_strAnhang und als Anhang einer Outlook-Mail verschickt.

    Beim Aufteilen der Lieferscheine auf die verschiedenen Außenlager bin
    ich soweit, dass ich je Außenlager die alle benötigten Daten für den
    Lieferschein. in einem recordset habe. Ab ich kann bei OutputTo dieses
    recordset nicht als Datenquelle zuweisen. Und beim Öffnen der Berichts
    rptLieferschein ist das recordset ja nicht mehr verfügbar.

    Du kannst aber das Recordset als Abfrage speichern, diese Abfrage als
    Datenherkunft des Berichts nehmen und diesen per OutputTo wie bisher
    ausgeben. Beispiel:

    CurrentDb.QueryDefs("qryLieferschein").SQL = Rst.Name
    DoCmd.OutputTo acOutputReport, "rptLieferschein", ...

    Das kannst du fuer jedes Recordset wiederholen.

    Gruss - PEter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Mittwoch, 27. März 2013 13:24
    Moderator

Alle Antworten

  • Am 26.03.2013 schrieb WHans:

    Die pdf-Datei wird erzeugt über 
    DoCmd.OutputTo acOutputReport, "rptLieferschein", acFormatPDF, m_strAnhang
    und als Anhang einer Outlook-Mail verschickt.

    Beim Aufteilen der Lieferscheine auf die verschiedenen Außenlager bin ich soweit, dass ich je Außenlager die alle benötigten Daten für den Lieferschein. in einem recordset habe. Ab ich kann bei OutputTo dieses recordset nicht als Datenquelle zuweisen. Und beim Öffnen der Berichts rptLieferschein ist das recordset ja nicht mehr verfügbar.

    Du kannst natürlich während du die Daten im Recordset hast, damit auch
    den Report aufrufen und als PDF abspeichern. Sieh dir dazu auch die
    FAQ an: http://www.donkarl.com?FAQ5.9

    Weiters ist es möglich, im Report_Open die Record Source des Berichtes
    noch zu verändern. Damit sollte das möglich sein, was Du möchtest.

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Dienstag, 26. März 2013 19:35
  • Hallo Winfried,

    danke für deinen Beitrag. Ich will den Bericht nicht DRUCKEN mit DoCmd.OpenReport. Hier kann ich einen Filter mitgeben. Ich will mit DoCmd.OutputTo acOutputReport eine PDF-Datei erzeugen. Und da kann ich keine Filter mitgeben - oder übersehe ich das was.

    Das recordset "verfällt" ja mit dem Aufruf des Berichts, wenn ich es diesem als Datensatzquelle mitgeben will.

    Gruß

    Wilhelm

    Mittwoch, 27. März 2013 10:31
  • Hallo,

    WHans wrote:

    [...] Die pdf-Datei wird
    erzeugt über  DoCmd.OutputTo acOutputReport, "rptLieferschein",
    acFormatPDF, m_strAnhang und als Anhang einer Outlook-Mail verschickt.

    Beim Aufteilen der Lieferscheine auf die verschiedenen Außenlager bin
    ich soweit, dass ich je Außenlager die alle benötigten Daten für den
    Lieferschein. in einem recordset habe. Ab ich kann bei OutputTo dieses
    recordset nicht als Datenquelle zuweisen. Und beim Öffnen der Berichts
    rptLieferschein ist das recordset ja nicht mehr verfügbar.

    Du kannst aber das Recordset als Abfrage speichern, diese Abfrage als
    Datenherkunft des Berichts nehmen und diesen per OutputTo wie bisher
    ausgeben. Beispiel:

    CurrentDb.QueryDefs("qryLieferschein").SQL = Rst.Name
    DoCmd.OutputTo acOutputReport, "rptLieferschein", ...

    Das kannst du fuer jedes Recordset wiederholen.

    Gruss - PEter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Mittwoch, 27. März 2013 13:24
    Moderator
  • Hallo Peter,

    das war der entscheidende Tipp. Ich kämpfe zwar noch mit ein paar Details, aber es flutscht!

    Vielen Dank

    Wilhelm

    Die Zuweisung über rst.Name scheint eine Längenbegrenzung zu haben. Jedenfalls kann dabei kein gültiger SQL-string zusammen. Habe jetzt  statt rst.Name einen entsprechenden SQL-String aufgebaut und weise diese zu!


    • Bearbeitet WHans Mittwoch, 27. März 2013 18:08
    Mittwoch, 27. März 2013 17:20