Bonjour,
J essaye d envoyer des mails à des destinataires selon une requête ( champ coché ) , ça marche si la table contient des enregistrements.
Si la table contient aucun enregistrement mon code plante j ai un message : erreur d exécution - aucun enregistrement en cours.
Problème Movefirst.
voici le code : Table (T_Email ) ---- Requête (R_EMailOui)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub LaTotale() ' Initialisation : Dim ListeEMail As Recordset Set ListeEMail = CurrentDb.OpenRecordset("R_EMailOui") ListeEMail.MoveFirst ListeComplete = "" ' Parcourt de la requête : While Not ListeEMail.EOF ListeComplete = ListeComplete & ListeEMail("EMail") & ";" ListeEMail.MoveNext Wend ' On enlève le dernier point virgule : ' ListeComplete nous sera évidemment utile tout à l'heure : ListeComplete = Left(ListeComplete, Len(ListeComplete) - 1) ' Stop DAO : ListeEMail.Close Set ListeEMail = Nothing ' ####################################### ' # 2. Envoi de l'E-Mail avec Outlook : # ' ####################################### ' Initialisation : Dim MonOutlook As Object Dim MonMessage As Object Set MonOutlook = CreateObject("Outlook.Application") Set MonMessage = MonOutlook.createitem(0) ' Préparation du message : MonMessage.to = ListeComplete ' Récupération de la chaîne d'E-Mails Access : MonMessage.bcc = "xxx@free.fr" MonMessage.Subject = "Actions à faire" Corps = "Bonjour," Corps = Corps & Chr(13) & Chr(10) Corps = Corps & "Vous avez des actions en cours" MonMessage.body = Corps ' C'est parti : MonMessage.send ' Fermeture de la session Outlook : Set MonOutlook = Nothing End Sub
Partager