La prima cosa che devi capire è che un REPORT non si può inviare se non in PDF, e se dovessi invare solo questo basterebbe l'Uso di SendObject, come spiego sotto, ma se devi aggiungere un ulteriore allegato... NO.
Quindi se devi inviare una Mail con SOLO ALLEGATO il Report in PDF puoi usare SendMail documentato in Access
DoCmd.SendObject acSendReport, "rptFatture", acFormatPDF, "someone@somewhere.invalid", , , _
"Email with attached report", "This is the email body.", True
Ovviamente mandi via SOLO QUESTO.
Se devi invare oltre al PDF del Report anche un'altro allegato... il metodo è completamente differente.. prima stampi il report generando un FILE LOCALE in PDF, poi apri un Server di Automazione per l'INVIO MAIL da codice compilando i campi Object/TO/CC/BCC/BODY e poi aggiungi alla Collection Attachment prima il tuo REPORT pdf fornendo il Percorso Completo al mentodo Attachment ... e poi aggiungi l'altro file...!
Per stampare il PDF puoi usare questo metodo:
DoCmd.OpenReport "rptFatture", acViewPreview, "", "[ID_Fattura]=" & TuoNUmeroFattura, acHidden
DoCmd.OutputTo acOutputReport, "rptFatture", acFormatPDF, "C:\Percorso\NomeReportFattura1.Pdf", True
DoCmd.Close acReport,"rptFatture"
Quindi usando il codice che trovi quì:
https://codekabinett.com/rdumps.php?Lang=2&targetDoc=send-email-access-vba-cdo
andrai ad inserire
Public Sub SendSimpleCDOMail()
Const cdoSendUsingPort=2
Dim mail As Object
Dim config As Object
Set mail = CreateObject("CDO.Message")
Set config = CreateObject("CDO.Configuration")
config.Fields(cdoSendUsingMethod).Value = cdoSendUsingPort
config.Fields(cdoSMTPServer).Value = "localhost"
config.Fields(cdoSMTPServerPort).Value = 25
config.Fields.Update
Set mail.Configuration = config
With mail
.To = "someone@somewhere.invalid"
.From = "me@mycompany.invalid"
.Subject = "First email with CDO"
.TextBody = "This is the body of the first plain text email with CDO."
.AddAttachment "C:\path\NomeReport.pdf"
.AddAttachment "C:\path\AltroFile.XLS"
.Send
End With
Set config = Nothing
Set mail = Nothing
End Sub
Attenzione che potrebbe essere necessario conoscere il Server delle Mail in INVIO... ed inserirlo al posto di questo config.Fields(cdoSMTPServer).Value al posto di LocalHost...
http://www.utteraccess.com/forum/Sending-Email-Smtp-CDO-t1957295.html
Le info che hai ora sono il massimo che si può fornirti... non è per completi inesperti... serve un minimo di base...!