Вот как я это сделал с SendObject, он прикрепляет отчет в формате RTF и помещает его в тело письма.
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 = "someone@domain.com"
'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