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
| Private Sub cmdSend_Click()
'Déclaration des variables
Dim rstCourriels As DAO.Recordset
Dim appOutlook As Outlook.Application
Dim MailOutlook As Outlook.MailItem
'Baser le recordset sur la requête "Liste publimailing"
Set rstCourriels = CurrentDb.OpenRecordset("Liste publimailing")
'Aller au premier enregistrement du recordset
rstCourriels.MoveFirst
'boucler jusqu'à la fin du recordset
Do While Not rstCourriels.EOF
'Si le champ "Courriel" est vide passer à l'enregistrement suivant
If IsNull(rstCourriels!Courriel) Then GoTo saut_enregistrement
'Lancer Outlook si l'application n'est pas déjà ouverte
Set appOutlook = GetObject(, "Outlook.Application")
If Err <> 0 Then
Set appOutlook = CreateObject("Outlook.Application")
End If
'Créer un nouvel Email
Set MailOutlook = appOutlook.CreateItem(olMailItem)
With MailOutlook
'Affecter l'adresse électronique
.To = rstCourriels!Courriel
'Affecter l'objet du message
.Subject = txtObjet
'Affecter le corp du message
.Body = txtMessage
'Définir les options d'envoi
.ReadReceiptRequested = False: 'Ne pas demander d'accuser de lecture
.OriginatorDeliveryReportRequested = True: 'Demander un accusé de réception
.Importance = olImportanceHigh: 'Définir l'importance à haute
'Envoyer le message
.Send
End With
saut_enregistrement:
'Passer à l'enregistrement suivant
rstCourriels.MoveNext
Loop
'Fermer le recordset
rstCourriels.Close
'Message d'information
MsgBox "Les messages ont été créés, vérifier au niveau d'Outlook", vbApplicationModal + vbInformation + vbOKOnly, "Envois de messages"
'Décharger les objets en mémoire
Set MailOutlook = Nothing
Set appOutlook = Nothing
Set rstCourriels = Nothing
End Sub |
Partager