1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| '------------------------------------------------------------
' mail_2files
'
'------------------------------------------------------------
Function mail_2files()
On Error GoTo mail_2files_Err
With CodeContextObject
' Ouvrir le rapport
DoCmd.OpenReport "Nom de l'état 1", acViewReport, "", "Condition where", acHidden
' Exporter le rapport en tant que fichier PDF temporaire
Dim tempPath1 As String
tempPath1 = Environ("Temp") & "\" & "Nom personnalisé 1.pdf"
DoCmd.OutputTo acOutputReport, "Nom de l'état 1", acFormatPDF, tempPath1
' Ouvrir le rapport
DoCmd.OpenReport "Nom de l'état 2", acViewReport, "", "Condition where", acHidden
' Exporter le rapport en tant que fichier PDF temporaire
Dim tempPath2 As String
tempPath2 = Environ("Temp") & "\" & "Nom personnalisé 2.pdf"
DoCmd.OutputTo acOutputReport, "Nom de l'état 2", acFormatPDF, tempPath2
' Adresse e-mail de l'expéditeur
Dim mailExpValue As String
mailExpValue = Forms!mon_form![mail défaut] ' ou "test@test.com"
' Adresse e-mail du destinataire
Dim mailContactValue As String
mailContactValue = IIf(IsNull(Forms!mon_form!mail_cli), "", Forms!mon_form!mail_cli)
' Appel de la fonction pour envoyer le rapport par e-mail via Outlook
Envoyer2filesParEmail mailContactValue, mailExpValue, tempPath1, tempPath2
' Fermer le rapport
DoCmd.Close acReport, "Nom de l'état 1"
DoCmd.Close acReport, "Nom de l'état 2"
' Supprimer le fichier PDF temporaire
Kill tempPath1
Kill tempPath2
End With
mail_2files_Exit:
Exit Function
mail_2files_Err:
MsgBox Error$
Resume mail_2files_Exit
End Function
'------------------------------------------------------------
' Envoyer2filesParEmail
'
'------------------------------------------------------------
Sub Envoyer2filesParEmail(mailContactValue As String, mailExpValue As String, rapportPath1 As String, rapportPath2 As String)
' Déclaration des objets Outlook
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Dim OutAccount As Outlook.Account
' Création d'une instance de l'application Outlook
Set OutApp = CreateObject("Outlook.Application")
' Création d'un nouvel objet Mail
Set OutMail = OutApp.CreateItem(olMailItem)
' Choix du compte mail
Set OutAccount = OutApp.Session.Accounts(mailExpValue)
' Configuration du mail
With OutMail
.To = mailContactValue
.Subject = "Votre sujet"
.HTMLBody = "<br>" & .HTMLBody
.SendUsingAccount = OutAccount
.Attachments.Add rapportPath1 ' Ajoute l'attachement PDF du rapport
.Attachments.Add rapportPath2 ' Ajoute l'attachement PDF du rapport
.Display ' Affiche le message pour vérification avant envoi. Utilisez .Send pour envoyer directement sans vérification.
End With
' Libération des objets Outlook
Set OutMail = Nothing
Set OutApp = Nothing
Set OutAccount = Nothing
End Sub |
Partager