Meerdere rapporten verzenden

Status
Niet open voor verdere reacties.

Daneron

Gebruiker
Lid geworden
10 jun 2003
Berichten
186
Hoi, bij het verzenden van 2 rapporten maak ik gebruik van onderstaande code:

strmailadres = Me.Emailveld
DoCmd.SendObject acReport, "Rapport 1", "PDFFormat(*.pdf)", _
strmailadres, "", "", "Rapport uit database", "Bijlage is toegevoegd aan bericht !", False, "" 'True

DoCmd.SendObject acReport, "Rapport 2", "PDFFormat(*.pdf)", _
strmailadres, "", "", "Rapport uit database", "Bijlage is toegevoegd aan bericht !", False, "" 'True

De bedoeling is om de 2 rapporten in 1 email bericht te plaatsen alleen krijg ik het niet voor elkaar.
Bij onderstaande krijg ik een foutmelding dat de type niet overeenkomen?

DoCmd.SendObject acReport, "Rapport 1" and "Rapport 2", "PDFFormat(*.pdf)", _
strmailadres, "", "", "Rapport uit database", "Bijlage is toegevoegd aan bericht !", False, "" 'True

Kan iemand mij hierbij helpen

Alvast bedankt,

mvrg
Daneron
 
Laatst bewerkt:
Dat kan alleen als je met een Outlook sessie werkt, SendObject kan dat niet.
Workaround: zet de twee rapporten in één rapport, dan gaat het wel weer. Want dan stuur je weer één object.
 
Ow, dat is jammer.

Dan maken we er maar 1 rapport van,

iig bedankt.
 
Weglopen voor en probleem? :). Het is niet zo heel moeilijk om meerdere rapporten met Outlook te versturen. En je bent veel flexibeler. Bovendien hoef je niks aan je rapporten te veranderen, en dat kan nog best stevige consequenties hebben...
 
Laatst bewerkt:
Ik had de rapporten juist gesplitst omdat ik problemen ondervond, als ik de mogelijkheid zou hebben om het in 1 bericht te kunnen verzenden...graag

Op het werk maken we gebruik van Outlook
 
Ik heb even wat in elkaar gefrutseld op basis van jouw gegevens; kijk maar of je het aan de praat krijgt! Wel eerst de Outlook bibliotheek aanzetten, want ik heb 'm met Early Binding gemaakt.
Code:
Private Sub cmdMailen_Click()
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim strDesktop As String, sRapport As String
Dim sTmp As String, sFile As String
Dim i As Integer
    
    strDesktop = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
    For i = 1 To 3
        sRapport = "Rapport" & i
        DoCmd.OutputTo acOutputReport, sRapport, acFormatPDF, strDesktop & sRapport & ".pdf", , , , acExportQualityPrint
    Next i
    Set olApp = CreateObject("Outlook.Application")
    Set olMail = olApp.CreateItem(olMailItem)
    With olMail
        .BodyFormat = olFormatRichText
        .To = strMailAdres
        .Subject = "Rapport uit database"
        .HTMLBody = "Bijlage is toegevoegd aan bericht !"
        If Not Right(strDesktop, 1) = "\" Then strDesktop = strDesktop & "\"
        For i = 1 To 3
            sFile = Dir(strDesktop & "Rapport" & i & ".pdf")
            If Not sFile = "" Then .Attachments.Add (strDesktop & sFile)
        End If
        ''.Send
        .Display
    End With
    'Rapporten weer weggooien...
    For i = 1 To 3
        Kill strDesktop & "Rapport" & i & ".pdf"
    End If
    'MsgBox olMail.Body
    MsgBox "Er is een mail gestuurd "
    Exit Sub

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

End Sub
 
Wat ik ook pruts ik krijg deze melding niet weg "End IF zonder blok If" Wat een gedoe om 2 rapporten te kunnen verzenden :confused:
 
Dat krijg je er van als je code schrijft zonder db :). Kwestie van de code compileren, dan zie je vanzelf waar het fout gaat. En waarom...
Code:
    With olMail
        .BodyFormat = olFormatRichText
        .To = strMailAdres
        .Subject = "Rapport uit database"
        .HTMLBody = "Bijlage is toegevoegd aan bericht !"
        If Not Right(strDesktop, 1) = "\" Then strDesktop = strDesktop & "\"
        For i = 1 To 3
            sFile = Dir(strDesktop & "Rapport" & i & ".pdf")
            If Not sFile = "" Then .Attachments.Add (strDesktop & sFile)
        ''.Send
            .Display
        Next i
    End With
    'Rapporten weer weggooien...
    For i = 1 To 3
        Kill strDesktop & "Rapport" & i & ".pdf"
    Next i
 
Je code werkt prima, met een paar kleine aanpassingen. Om te beginnen, en de belangrijkste oorzaak waarom hij bij jou niet werkt: de rapportnamen zijn bij jouw anders. En dan werkt het natuurlijk nooit. Verder had ik een loop van 3 rapporten gemaakt, om te laten zien dat je e.e.a. heel flexibel kunt maken, en jij hebt er maar 2. Dan krijg je ook een foutmelding want dan wordt er naar een niet-bestaand rapport gezocht. Dus dit zou moeten werken:

Code:
    strDesktop = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
    Set olApp = CreateObject("Outlook.Application")
    Set olMail = olApp.CreateItem(olMailItem)
    With olMail
        .BodyFormat = olFormatRichText
        .To = Me.emailveld.Value
        .Subject = "Rapport uit database"
        .HTMLBody = "Bijlage is toegevoegd aan bericht !"
        For i = 1 To 2
            sRapport = "Rvoorbeeld" & i
            DoCmd.OutputTo acOutputReport, sRapport, acFormatPDF, strDesktop & sRapport & ".pdf", , , , acExportQualityPrint
            sFile = Dir(strDesktop & "Rvoorbeeld" & i & ".pdf")
            If Not sFile = "" Then .Attachments.Add (strDesktop & sFile)
            Kill strDesktop & "Rvoorbeeld" & i & ".pdf"
        Next i
        .Display
        ''.Send
    End With
    MsgBox "Er is een mail gestuurd "
    Set olApp = Nothing
Ik heb de .View ook verplaatst, die stond op de verkeerde regel. Niet dat het voor de werking veel uitmaakt, maar dit is logischer. En het kon nog wat strakker :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan