Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: dobby110 am August 05, 2020, 16:26:26

Titel: Bericht direkt als .pdf speichern?
Beitrag von: dobby110 am August 05, 2020, 16:26:26
Hallo zusammen,

ich habe soeben über die Makro-Funktionen in Access ein "Makro" nach VBA konvertiert.
Und zwar würde ich gerne den Bericht direkt als .pdf-Datei unter einem bestimmten Namen speichern.
Kann mir dabei jemand helfen? Wie muss ich den Code im VBA modifizieren, damit der Bericht in der Seitenansicht direkt als .pdf gespeichert wird?


Option Compare Database

'------------------------------------------------------------
' Proc_TEST_Druck_WV
'
'------------------------------------------------------------
Function Proc_TEST_Druck_WV()
On Error GoTo Proc_TEST_Druck_WV_Err

    DoCmd.OpenReport "ber_Massnahmen_mit_WVL", acViewPreview, "", "", acNormal
    DoCmd.RunCommand acCmdPrint


Proc_TEST_Druck_WV_Exit:
    Exit Function

Proc_TEST_Druck_WV_Err:
    MsgBox Error$
    Resume Proc_TEST_Druck_WV_Exit

End Function


Vorab vielen Dank für die Unterstützung!
Titel: Re: Bericht direkt als .pdf speichern?
Beitrag von: DF6GL am August 05, 2020, 16:40:52
Hallo,

--Öffne den Bericht als "versteckt"  (acHidden)

--Konvertiere und speichere mit Docmd.OutputTo  den Bericht als PDF-Datei mit dem gewünschten Namen (siehe VBA-Hilfe für die Parameter).


--Schließe den versteckt geöffneten Bericht wieder.
Titel: Re: Bericht direkt als .pdf speichern?
Beitrag von: MzKlMu am August 05, 2020, 16:41:09
Hallo,
einfach so:
DoCmd.OutputTo acOutputReport, "ber_Massnahmen_mit_WVL", "PDF", "Pfad & ber_Massnahmen_mit_WVL.pdf"
Eine Funktion zum Drucken halte ich hier für überflüssig.
Den Code kannst Du einfach in das Ereignis "Beim Klicken" eines Befehlsbuttons legen.
Titel: Re: Bericht direkt als .pdf speichern?
Beitrag von: DF6GL am August 05, 2020, 16:43:11
Hallo,

Openreport ist nur dann überflüssig, wenn nie  eine Where-Condition vorgesehen ist.
Titel: Re: Bericht direkt als .pdf speichern?
Beitrag von: PhilS am August 05, 2020, 17:05:13
Zitat von: dobby110 am August 05, 2020, 16:26:26Und zwar würde ich gerne den Bericht direkt als .pdf-Datei unter einem bestimmten Namen speichern.
Hier ist eine Anleitung: Gefilterten Access Bericht als PDF exportieren (https://codekabinett.com/rdumps.php?Lang=1&targetDoc=gefilterten-access-bericht-pdf-exportieren-docmd-outputto)
Titel: Re: Bericht direkt als .pdf speichern?
Beitrag von: DF6GL am August 05, 2020, 18:14:32
Hallo,

man könnte das Openreport-Getöse auch dadurch umgehen, indem die Berichtsabfrage in der Parameter-Sektion entsprechend versorgt oder ein SQL-String mit einer Where-Condition  dynamisch zusammengesetzt und der SQL-Eigenschaft der Berichtabfrage zugewiesen wird.


PS:  fällt mir noch ein:

Eine Public-Function generieren, die in der Berichtsabfrage aufgerufen wird (im Kriterienfeld,  bzw.Where-Condition -Klausel). Diese Funktion übergibt eine vorher gesetzte Public-Variable als Kriteriumswert an die Abfrage, sobald diese durch das Öffnen des Berichtes ausgeführt wird.

Alles benötigt ein bisschen Aufwand, um den man mit keiner  (zumindest mir bekannten) Methode herumkommt.




Nun eine Frage von mir, etwas, aber nicht ganz off topic:

Sobald der Bericht direkt oder per Outputto ausgegeben wird, poppt das Drucken-Info-Fenster (des Spoolers oder der Druckertreibers) auf und schließt gleich wieder.

Hat jemand eine Lösung parat, wie diese MsgBox gänzlich unterdrückt werden kann? (Vermutlich hab ich es vergessen...    :o )

Vorstellung: API oder WMI oder Registry