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
| Option Compare Database
Public Sub EnvoiMassif()
'Ajouter les références suivantes :
'Microsoft Outlook
'Microsoft DAO
Const SAUTLIGNE = "<br/>"
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
Dim strContenu As String
Dim oRst As DAO.Recordset
Dim Rqt As String
Dim oFld As DAO.Field
Dim strTo As String
Rqt = ("select MCCL1 from Admails where AdMails.CodeAgence=Rdv.CodeAgence") & "; "
'Instancie Outlook
Set oApp = CreateObject("Outlook.Application")
'Ouvre un curseur sur la table
Set oRst = CurrentDb.OpenRecordset("Rdv")
'Crée un nouveau message
Set oMail = oApp.CreateItem(olMailItem)
oMail.Body = olFormatHTML
strContenu = "<b>Bonjour !</b>"
'Saute deux lignes
strContenu = strContenu & SAUTLIGNE & SAUTLIGNE
'Ecrit le reste de l'entete
strContenu = strContenu & "<div>Comme convenu, je vous envoie l'ensemble " & _
"de la liste des produits que nous " & _
"proposons et qui correspondent à l'activité " & _
"de votre entreprise.</p>"
'Saute deux lignes
strContenu = strContenu & SAUTLIGNE & SAUTLIGNE
'Crée le table
strContenu = strContenu & "<div align=""center""><table>"
'Crée la ligne d'entête
strContenu = strContenu & "<tr>"
'Pour chaque champ, crée une colonne avec le nom du champ
For Each oFld In oRst.Fields
strContenu = strContenu & "<td><b>" & oFld.Name & "</b></td>"
Next oFld
'Termine la ligne
strContenu = strContenu & "</tr>"
'Pour chaque enregistrement, crée une nouvelle ligne
While Not oRst.EOF
strContenu = strContenu & "<tr>"
'Pour chaque champ, crée une colonne avec la valeur du champ
For Each oFld In oRst.Fields
strContenu = strContenu & "<td>" & oFld.Value & "</td>"
Next oFld
'Termine la ligne
strContenu = strContenu & "</tr>"
'Passe à l'enregistrement suivant
oRst.MoveNext
Wend
'Ferme le tableau
strContenu = strContenu & "</table></div>"
'Affecte le code HTML au mail
'Ouvre un recordset sur les clients
Set oRst = CurrentDb.OpenRecordset("Rdv")
'Boucle sur chaque client et les ajoute au champ BCC du mail
While Not oRst.EOF
strTo = strTo & oRst.Fields("rqt") & "; "
oRst.MoveNext
Wend
'Supprime la dernière virgule
oMail.BCC = Left(strTo, Len(strTo) - 2)
oMail.Subject = "Prise de rendez-vous " & Date
'Envoi le mail
oMail.Send
'ferme le curseur
oRst.Close
Set oRst = Nothing
'Ferme Outlook
oApp.Quit
Set oApp = Nothing
End Sub |
Partager