Neuigkeiten:

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

Mobiles Hauptmenü

Bericht beim Aufruf per Mail versenden

Begonnen von hambam, November 18, 2010, 11:58:27

⏪ vorheriges - nächstes ⏩

hambam

Hallo,

ich bin leider ein ziemlicher Access-Neuling, ich hoffe ihr habt dennoch etwas Geduld, um mir zu helfen.

In einer Tabelle habe ich Adressdaten von Personen stehen, unter anderem auch die eMail-Adresse.
Beim Aufruf des Berichts soll nun für jede Person die aufbereitete Seite per Mail verschickt werden.

Wie fange ich das zweckmäßigerweise an?
Wenn ich die Funktion Report_open verwende, wird diese ja bereits ausgeführt, bevor der Bericht erstellt ist. So sieht es zumindest aus.
Und ich werde wohl nicht unterscheiden können, wo welche Person anfängt und wo aufhört.
Gibts es vielleicht eine bessere Funktion, die ich verwenden kann?

Grundsätzlichen Code, um eine Mail zu versenden habe ich bereits gefunden, wobei ich auch noch herausfinden muss, wie ich eventuell die Berichtsseite als PDF verschicken kann.




hambam

#2
Vielen Dank für den Link, aber den hatte ich auch schon gefunden und bezieht sich ja nur auf das PDF erstellen.
Die grundsätzliche Frage war ja, wie ich aus dem Bericht quasi eine Serien-Mail verschicken kann.
Für jeden Tabelleneintrag wird ja eine Berichtsseite erzeugt, wenn ich mich da einklinken könnte, wäre das für mich schon ein riesiger Fortschritt.

DF6GL

Hallo,


Im Report das zu machen, ist zu spät... Den kannst Du nicht mehr  in einzelne Seiten aufsplitten.


Öffne einen Recordset , der alle gewünschten DS  mit einer EMail-Adresse enthält.

In einer Do-Schleife werden die DS nacheinander abgearbeitet.
In jedem Schleifendurchlauf manipulierst Du eine gespeicherte Berichtsabfrage insofern, als dass ihr ein SQL-String mit passendem Kriterium mitgegeben wird (z. B. die AdressID oder PersonenID) ,  erzeugst anschließend die PDF-Datei und versendest die als Attachment per Outlook-Automation oder mit der CDO-Library.




hambam

ok, der Sammelbericht scheidet also aus?
Wenn ich über Private Sub Report_Page() gehe, hätte ich vielleicht den Inhalt bekommen etc, aber hätte mich durch jede Seite klicken müssen?

D.h. ich muss zunächst einen Bericht erstellen, der für genau einen bestimmten vorgegebenen Eintrag aus der Tabelle die Seite aufbaut?
Diesen kann ich dann per VB-Script aufrufen und das Resultat kann dann per VB-Script weiterverarbeitet (z.B. als PDF umwandeln) und als Mail verschickt werden?

Um eine Mail per Mail (über Lotus Notes) zu verschicken, habe ich schon mal folgenden Code gefunden: http://www.fabalou.com/VBandVBA/lotusnotesmail.asp

Die DLLs au dem PDF-Link habe ich im selben Verzeichnis stehen, aber ich werde aus der Anleitung noch nicht so recht schlau, wie ich über ein Script aus einem Bericht ein PDF erstelle.


DF6GL

Hallo,

ok, der Sammelbericht scheidet also aus?
Zitat

ja


ZitatWenn ich über Private Sub Report_Page() gehe, hätte ich vielleicht den Inhalt bekommen etc, aber hätte mich durch jede Seite klicken müssen?

dort ist zwar auf die einzelen Feldinhalte Zugriff möglich, aber die akt. Berichtsseite selber ist Teil des Berichtes und kann wie gesagt, nicht zu einer PDF-Datei exportiert werden (Es gäbe vielleicht schon einen Trick in Verbindung mit der Output-Methode im Lebans-Code, aber das wäre durch die Brust ins Auge geschossen)


ZitatD.h. ich muss zunächst einen Bericht erstellen, der für genau einen bestimmten vorgegebenen Eintrag aus der Tabelle die Seite aufbaut?

Nein, Du kannst den vorhandenen Bericht benutzen.  Über die besagte Abfrage mit dem passenden Kriterium wird dem Bericht nur eine
Adresse (Person) angeboten, die er anzeigt.

ZitatDiesen kann ich dann per VB-Script aufrufen und das Resultat kann dann per VB-Script weiterverarbeitet (z.B. als PDF umwandeln) und als Mail verschickt werden?

Nein, nicht Du rufst den Bericht auf und konvertierst den in eine PDF-Datei, das macht der Lebans-Code.


Um eine Mail per Mail (über Lotus Notes) zu verschicken, habe ich schon mal folgenden Code gefunden: http://www.fabalou.com/VBandVBA/lotusnotesmail.asp


ok, kann dazu nichts weiter sagen

ZitatDie DLLs au dem PDF-Link habe ich im selben Verzeichnis stehen, aber ich werde aus der Anleitung noch nicht so recht schlau, wie ich über ein Script aus einem Bericht ein PDF erstelle.


Du sollst auch keinen Bericht erstellen( öffnen).  Du übergibst der Funktion lediglich den Berichtsnamen. Der Bericht wird im Code direkt in eine Datei im SNP-Format "gedruckt" und diese anschließend in eine PDF-Datei umgewandelt.


Der Trick mit meinem Vorschlag liegt darin, VOR dem Öffnen des Berichtes die gespeicherte Berichtsabfrage mit einem passenden Kriterium zu versehen, damit der Bericht während der PDF-Konvertierung nur einen Datensatz erhält.



hambam

Warscheinlich bin ich einfach zu blöd, aber ich hab das jetzt so verstanden, dass ich meine Tabellen und Berichte in die PDFConverter-MDB reinkopieren muss, oder umgekehrt.
Der Aufruf erfolgt über das "How to Use" in dem ich dann meinen Bericht auswählen könnte.
Soweit ich sehe, habe ich nur die Wahl zwischen einem geschützten und einem ungeschütztem Dokument. Und das PDF wird einfach geöffnet, kann ich also nicht automatisch an ein Mailprogramm weitergeben.

DF6GL

Hallo,

Du mußt das Modul aus der Lebans-DB in Deine DB kopieren...

Du hast selber gesagt, dass der Code nur ein PDF aus einem Bericht erstellt, und zwar so, wie der Bericht sich ansehen würde, wenn er direkt auf dem Datenbankfenster aufgerufen wird.

Die generierte PDF-Datei mußt Du natürlich noch als Attachment an eine Email anhängen. Automatisch geht das nichts. Auch das habe ich Dir gesagt:  entweder per Automation Deines EMail-Programmes oder mit Hilfe der CDO-Library.



hambam

Ich habe noch eine Seite gefunden, die genau das wohl macht, was ich möchte, aber natürlich werde ich nicht schlau daraus.
Die Anleitung benutzt auch das Lebans Modul.
http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=508