Neuigkeiten:

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

Mobiles Hauptmenü

Dynamisch erzeugter Bericht speichern

Begonnen von silentwolf, Februar 12, 2012, 11:49:26

⏪ vorheriges - nächstes ⏩

silentwolf

Hallo an alle VPA Freunde :)

Hab schon etwas gegoogelt aber leider nocht nicht das gefunden was mir weiterhilft deshalb würde ich gern von jemanden
Hilfe bekommen.

Hab ein formular erstellt wo ich mit zwei textfeldern DatumVon und DatumBis eingeben kann. Dazu noch ein combo wo das Objekt
ausgewählt wird.
Eine Abfrage ist erstellt die mir diese Datensätze per button ausgibt.
Soweit so gut alles funktioniert. Auch hab ich einen button der mr diese Datensätze als bericht anzeigt...Auch gut.

Nun würde ich diesen Bericht gern als pdf zu den dazugehörigen Kunden und als dateiname z.B. Huber1.1.12bis30.1.12 speichern.
Ich habe schon einen Code für das Speichern einer pdf file gefunden aber da ja mein Bericht dynamisch erzeugt wird komm ich leider
selbst nicht weiter.

Ich hoffe ich habe mich verständlich ausgedrückt und jemand wär so nett und kann mir tipps dazu geben.

Vielen Dank

Albert

database

Hallo Albert,

"Ich habe schon einen Code für das Speichern einer pdf file gefunden ... "

welchen denn - innerhalb des Codes wird ja wahrscheinlich auch der Dateinamen erzeugt - und genau da musst du ansetzen.

Kannst du den Code mal posten?

silentwolf

Hallo Peter!

Schön das ich wieder was von Dir höre!!

Hier ist der code:

Private Sub cmdRptStunden_Click()
    Dim stDocName As String

    stDocName = "rptObjektStunden"
    DoCmd.OpenReport stDocName, acPreview
    DoEvents
    DoCmd.RunCommand acCmdZoom100 '100% einstellen, falls gewünscht
    DoEvents
    If MsgBox("Drucken", vbYesNo) = vbYes Then
        DoCmd.RunCommand acCmdPrint 'Druckerdialog
      Else
       DoCmd.Close acReport, stDocName

    End If

End Sub

Das wäre der Code um es einfach zu drucken

und hier der code um ein pdf zu speichern

    DoCmd.OutputTo acOutputReport, "rptObjektStunden", acFormatPDF, "c:\MeinPfad\MeinDateiname.pdf"

Hab leider vergessen was man eingeben muss um den Code besser lesen zu können :( tut mir leid!!

Albert

database

Hallo Albert,

Hab leider vergessen was ....

Schließe den Code in die Code-Tags ein:

  und


hier ...   DoCmd.OutputTo acOutputReport, "rptObjektStunden", acFormatPDF, "c:\MeinPfad\MeinDateiname.pdf"

muß die Angabe "C:\...." durch eine String-Variable ersetzt werden, die zuvor aus dem StandardSpeierort und dem Kundennamen sowie den Beginn-und Enddatumswerten zusammenfesetzt wird.
Also in Etwa so:


Dim strPfadundDatei as String
Dim strKunde as String

strKunde = '.... entweder aus dem Formular oder per DLookup emittelt

strPfadundDatei = "C:\DeinPfad\" & strKunde & Me!DatumVon & "bis" & me.DatumBis & ".pdf"

DoCmd.OutputTo acOutputReport, "rptObjektStunden", acFormatPDF, strPfadundDatei


Teste mal so ...   ::)

silentwolf

Hallo Peter,

was meinst Du den mit


strKunde = '.... entweder aus dem Formular oder per DLookup emittelt

also da geht leider noch nichts ...

Da bin ich jetzt leider noch etwas überfragt wie der Code zusammengesetzt werden soll  :-[



silentwolf

Hallo nochmal,

Der Bericht wird jetzt als Pdf gespeichert aber erst in diesem Pfad C:\Dokumente und Einstellungen\Office\Eigene Dateien\Arbeit\Kunden
Wie soll ich denn nun oder wie kann ich den Ordner auswählen.

Danke  ::)



database

Hallo Albert,

Ich gehe davon aus, dass entweder der Kundenname oder dessen ID auf deinem Formular vorhanden ist.
Daher:

strKunde = Me!DeinFeldmitKundenname

bzw. mit der ID   strKunde = DLookup("Kundenname","tblKunden","KundenID=" & Me!DeinFeldMirderKundenID)

wenn du nun für jeden Kunden einen eigenen Ordner hast:

strPfadundDatei =  "C:\" & strKunde & "\" &  strKunde & Me!DatumVon & "bis" & me.DatumBis & ".pdf"

oder wenn du einen 'Sammelordner' verwendest:

strPfadundDatei = "C:\NameDesOrdners\" & strKunde & Me!DatumVon & "bis" & me.DatumBis & ".pdf"

im Prinzip enthält die Variable strPfadundDatei den Pfad und den Dateinamen, den deine abgelegte Datei ehalten soll und würde so wie in deinem Beispiel ....  "c:\MeinPfad\MeinDateiname.pdf" ... entsprechen.


In dieser Variablen wird daher diese Information durch Stringverkettung zusammengesetzt und der Funktion ... DoCmd.OutputTo   übergeben.

Der Laufwerksbuchstabe und das Speicherverzeichnis müssen bereits bestehen sonst stellt die Funktion deine *.pdf ins Standarddateiverzeichnis!

HTH

silentwolf

Danke für Deine Antwort und Hilfe,

werde es gleich probieren!!

Ich lass es Dich wissen ob es funktioniert hat  ;D

database

Hi,

na dann wollen wir mal hoffen dass es klappt!   ::) ;)