Inhoud rapport of formulier versturen als email

Status
Niet open voor verdere reacties.

jvandervliet

Gebruiker
Lid geworden
23 mrt 2006
Berichten
234
Beste mensen,

In mijn database wil ik de inhoud van een rapport versturen als email inhoud en niet als bijlage. Kan dat? Als ik op "gereedmelding" knop klik moet er een mail naar de klant uitgaan dat de opdracht klaar is. En die melding heb ik nu in zo'n rapport staan, die de gegevens uit de factuur haalt en weergeeft.

Alvast hartelijk dank!
 
Je zult daneen HTML mail moeten sturen en die dus moeten opbouwen vanuit het rapport. Overigens heb je dan alleen de gegevens nodig, het rapport gebruik je dan niet meer. Dus het kan net zo goed vanuit de knop en het formulier van waaruit je het rapport aanroept.
 
Het slimst is het om een HTML editor te gebruiken om de mail op te maken. Daar typ je dan de tekst in met de gewenste opmaak. Vervolgens kopieer je alle HTML code naar het tekstvak in Access dat je gebruikt voor de verzending. De code voor het verzenden ziet er dan ongeveer zo uit:

Code:
Private Sub cmdMailen_Click()
Dim appOutLook As Outlook.Application
Dim MailOutLook As Outlook.MailItem

    Set appOutLook = CreateObject("Outlook.Application")
    Set MailOutLook = appOutLook.CreateItem(olMailItem)
    With MailOutLook
    .BodyFormat = olFormatRichText
    .To = Me.Email_Address
    .Subject = Me.Mess_Subject
    .HTMLBody = Me.mess_text
    '.DeleteAfterSubmit = True   'This would let Outlook send the note without storing it in your sent bin
    .Send
    End With
    MsgBox "Er is een mail gestuurd naar " & Me.Email_Address & " met " & iTeller & " bijlagen."
    Exit Sub

email_error:
    MsgBox "An error was encountered." & vbCrLf & "The error message is: " & Err.Description

End Sub
 
Beste Octafish

Bij deze regels geeft Access een fout:

Dim appOutLook As Outlook.Application
Dim MailOutLook As Outlook.MailItem
 
Da's vlot :). Ik gebruik een Early Binding variant, waarbij je de Outlook bibliotheek moet laden. Die vind je in <Extra>, <Verwijzingen>. Alternatief is om Late Binding te gebruiken, maar dan wordt de syntax van de meeste commando's minder duidelijk (getallen).
 
Beste mensenn
Hoe kan ik een Rapport (Factuur) meesturen?

.Attachments.Add (Reports.Report.Report_AfdrukWerkbon)
 
Laatst bewerkt:
Een rapport meesturen heeft niet zoveel zin; je moet het rapport eerst opslaan. Dus exporteren, bij voorkeur uiteraard als pdf. Microsoft heeft ook een eigen format, maar dat vereist van de ontvanger(s) dat er een viewer wordt geïnstalleerd. Dat was vroeger noodzakelijk, maar sinds je in de Office ook perfecte pdfjes kunt maken, natuurlijk niet meer van deze tijd.
 
Het is de bedoeling dat naast een stukje tekst ook een factuur als bijlage meegestuurd wordt.
 
Was het niet andersom? Overigens nog steeds geen probleem natuurlijk; je kunt (zo doe ik het tenminste) in de rapport koptekst en eindtekst complete standaard teksten zetten, desnoods ook met tabelgegevens (om de aanheft bijvoorbeeld persoonlijker te maken, of een bedrijfslogo) en daarin kun je zelfs, net als in Word, paginascheidingen maken. In de eigenlijke factuur gebruik je dan de kopteksten en de detailsectie. Het geheel is dan één rapport. En dat laat zich weer prima exporteren als PDF en mailen.
 
het gaat om bestaande rapport die ik als bijlage wil versturen. Hoe ga ik dat regelen?
 
Ik had al gezien dat je via de Wizard Knop wel in kon stellen dat je de rapport als PDF kan versturen, maar ik wil dan dat de macro het email-adres, onderwerp en het bericht uit de velden haalt waar het aangemaakt wordt. Is dit mogelijk?
 
Ja, dat is uiteraard geen enkel probleem. Nogmaals: je moet je rapport eerst exporteren. Vervolgens maak je de mail (bijvoorbeeld met de code hierboven) en voeg je de pdf als attachment toe aan de mail. Daarna kun je ervoor kiezen om de mail niet op te slaan in je Verzonden items (zoals in de code staat) en eventueel kun je de bijlage met KILL ook verwijderen. Ik zou dan wel een tabel aanhouden waarin je de verzendtransacties logt, zodat je weet wanneer een mail is verstuurd. Door dat in de db te doen, ben je niet afhankelijk van een persoon die de mails in zijn/haar verzonden items krijgt, en is de informatie dus voor iedereen beschikbaar.
 
Oke ik ben nu zover dat ik het wil gaan exporteren. Nu gebeurt het met de macro, niet met VBA. Nu wil ik het gaan doen met de vba code voorafgaand aan de code OctaFish mij gegeven hebt. Alleen hoe doe ik dat? Het gexporteerde bestand is factur.pdf en dient elke keer overschreven te worden.

Het moet voor de onderstaande code komen:

Code:
Private Sub cmdMailen_Click()
Dim appOutLook As Outlook.Application
Dim MailOutLook As Outlook.MailItem

    Set appOutLook = CreateObject("Outlook.Application")
    Set MailOutLook = appOutLook.CreateItem(olMailItem)
    With MailOutLook
    .BodyFormat = olFormatRichText
    .To = Me.Email_Address
    .Subject = Me.Mess_Subject
    .HTMLBody = Me.mess_text
    .attachments.add "c:\facturen\factuur.pdf"
    '.DeleteAfterSubmit = True   'This would let Outlook send the note without storing it in your sent bin
    .Send
    End With
    MsgBox "Er is een mail gestuurd naar " & Me.Email_Address & " met " & iTeller & " bijlagen."
    Exit Sub

email_error:
    MsgBox "An error was encountered." & vbCrLf & "The error message is: " & Err.Description

End Sub
 
Laatst bewerkt:
Al opgelost door DoCmd.OutputTo acOutputReport, "rptTrackingReport", acFormatPDF, strFolder & "\AfdrukFactuur.PDF"

Set fd = Nothing

voor de code te plaatsen. Ergens gevonden.

OctaFish, hartelijk dank voor je hulp!
 
Het wordt heel mooi als je de factuur.pdf naamgeving laat gebeuren met het boekjaar/factuurnummer ipv die steeds te overschrijven. Dan heb je een mooie overzicht/backup in die PDf map van alle gemaakte facturen. (en als je de printdatum ook opneemt in de naam heb je tegelijk nog een historiek van de facturen als je er al eens een moet hermaken).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan