Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Wenn Sie Berichte mit Inhalten wie Rechnungen, Lieferscheinen et cetera per E-Mail versenden möchten, brauchen Sie zweierlei: erstens die Umwandlung des Berichts in ein Format, das jeder Benutzer lesen kann – hier kommt eigentlich nur PDF in Frage. Und zweitens einen Automatismus, der diesen Bericht im PDF-Format an eine neue E-Mail anhängt, diese mit den Daten wie Empfänger, Betreff und Inhalt versieht und diese dann auch noch absendet. Dieser Artikel zeigt, wie es funktioniert.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1304_BerichtePerEMail.mdb.
Vorbereitungen
Wir nutzen in diesem Artikel die ab Access 2007 angebotenen Techniken zum Erstellen von PDF-Dokumenten. Wenn Sie die Lösung für Access 2003 oder älter anpassen möchten, finden Sie die entsprechenden Informationen im Artikel Bericht als PDF speichern (siehe Access [basics] 3/2012).
Die Beispieldatenbank baut auf der Datenbank zum Artikel Rechnungsbericht aus Ausgabe 6/2012 auf.
Rechnung als PDF speichern
Ausgangspunkt für die Erstellung eines PDF-Dokuments ist in unserem Beispiel das Formular frmBestellung, und hier speziell die neu angelegte Schaltfläche cmdPDFErstellen (siehe Bild 1). Diese Schaltfläche soll genau die Rechnung für die aktuell im Formular angezeigte Bestellung erzeugen.
Bild 1: Neue Schaltfläche zum Erstellen eines PDF-Dokuments auf Basis der Rechnung
Für die Schaltfläche hinterlegen Sie eine Ereignisprozedur, die durch das Ereignis Beim Klicken ausgelöst wird. Wählen Sie dazu im Eigenschaftsfenster für die Eigenschaft Beim Klicken den Eintrag [Ereignisprozedur] aus und klicken Sie auf die Schaltfläche mit den drei Punkten (…). Die nun im VBA-Editor erscheinende Prozedur ergänzen Sie wie in Listing 1.
Private Sub cmdPDFErstellen_Click() Dim strRechnung As String strRechnung = "Rechnung_" & Me.BestellungID & ".pdf" DoCmd.OpenReport "rptRechnung", WhereCondition:="BestellungID = " & Me!BestellungID, View:=acViewPreview DoCmd.OutputTo acOutputReport, "rptRechnung", acFormatPDF, CurrentProject.Path & "\" & strRechnung DoCmd.Close acReport, "rptRechnung" End Sub
Listing 1: Erstellen eines PDF-Dokuments per Mausklick
Die Prozedur erledigt die folgenden Schritte:
- Zusammenstellen eines Dateinamens nach dem Schema Rechnung_
.pdf - öffnen der Rechnung für den aktuellen Bestelldatensatz. Dazu wird als WhereCondition ein Ausdruck wie BestellungID =
- Die nun geöffnete Rechnung wird mit der OutputTo-Methode des DoCmd-Objekts als PDF-Dokument gespeichert.
- Schließlich wird der Bericht wieder geschlossen.
Die DoCmd.OutputTo-Methode ist einen genaueren Blick wert. Sie erwartet die folgenden Parameter:
- ObjectType: Art des zu exportierenden Objekts, hier acOutputReport für einen Bericht
- ObjectName: Name des zu exportierenden Objekts, hier der Name des Berichts (rptRechnung).
- OutputFormat: Format, in dem das Objekt gespeichert werden soll – hier acFormatPDF. Die verschiedenen Konstanten können Sie im Objektkatalog einsehen (einfach im VBA-Editor auf F2 drücken – Ergebnis siehe Bild 2).
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo