2010-07-29 3 views

Répondre

0

Si vous utilisez Outlook, vous pouvez écrire un rapport ou une requête sur disque et utiliser soit HTMLBody ou RTFBody, il ya un moment depuis que j'ai testé cela, j'espère qu'il est toujours utile.

Const ForReading = 1, ForWriting = 2, ForAppending = 3 

Dim fs, f 
Dim RTFBody 
Dim MyApp As New Outlook.Application 
Dim MyItem As Outlook.MailItem 

DoCmd.OutputTo acOutputReport, "Report1", acFormatRTF, "Report1.rtf" 
''DoCmd.OutputTo acOutputQuery, "Query1", acFormatHTML, "Query1.htm" 

Set fs = CreateObject("Scripting.FileSystemObject") 

Set f = fs.OpenTextFile("Report1.rtf", ForReading) 
''Set f = fs.OpenTextFile("Query1.htm", ForReading) 
RTFBody = f.ReadAll 
''Debug.Print RTFBody 
f.Close 

Set MyItem = MyApp.CreateItem(olMailItem) 
With MyItem 
    .To = "[email protected]" 
    .Subject = "Subject" 
    .RTFBody = RTFBody 
    ''.HTMLBody = RTFBody 
End With 
MyItem.Display 
2

Voilà comment je l'ai fait avec SendObject, il attache le rapport en tant que RTF et il met dans le corps de l'e-mail.

Private Sub btnEmail_Click() 

    Dim IDnumber As Integer 
    Dim Message As String 
    Dim EmailTo As String 
    Dim FileName As String 

    'Get the current record's ID Number 
    IDnumber = Me![ID] 
    'set file name and path 
    FileName = Environ("USERPROFILE") & "\My Documents\temp.html" 
    'set email address 
    EmailTo = "[email protected]" 

    'get form to open a new record 
    DoCmd.GoToRecord , , acNewRec 

    'generate report for the current record entered 
    DoCmd.OpenReport "ReportName", acPreview, , "[ID]=" & IDnumber, acHidden 
    'create HTML file for the report 
    DoCmd.OutputTo acOutputReport, "ReportName", acFormatHTML, FileName 

    'open file 
    Open FileName For Input As #1 
    'read the file into a string 
    Message = Input(LOF(1) - 1, 1) 
    'close the file 
    Close 1 

    'generate email 
    DoCmd.SendObject acSendReport, "ReportName", acFormatRTF, EmailTo, , , "Subject", Message 
    'close the report 
    DoCmd.Close acReport, "ReportName" 

    'suppress errors if file is not there 
    On Error Resume Next 
    'remove file 
    Kill FileName 

End Sub 
Questions connexes