Envoyer un mail via access

[Résolu/Fermé]
Signaler
-
 icecube -
bonjour a tous,

je m'expliquer j'ai table access dans laquelle j'ai stocké les adresses mail des destinataire,

avec un modul VBA j,'ai un programme qui envoi doit envoyer un mail à cette liste, sauf que je n'arrive pas mettre dans le code un truc qui dis pour le message.TO : va dans la table T_destinataire champs adresse et prend les adresse que tu trouve et envoie leur un mail. je vous remercie d'avance pour votre aide

ci-dessous mon programme qui fonctionne bien mais il n’intègre pas la les adresse mail.

Function envoi_auto()

Dim MonOutlook As Object
Dim MonMessage As Object
Dim bds As Database, dft As TableDef
Dim rs As Recordset
Dim JourNA, Mt, JourExt
Dim message
Dim strSQL As String
JourNA = Forms![F_Mail]!NA
Mt = Format(Forms![F_Mail]!Mt, "### ### ###")
JourExt = Format(Forms![F_Mail]!Djour, "dd/mm/yyyy")



message = "Bonjour," & Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Veuillez trouver dans le fichier joint le suivi quotidien de l'épargne centralisée." & _
Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Le montant de la collecte de la journée du " & JourNA & " est de " & Mt & " €uros " & _
Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Ce montant est une donnée de gestion à rapprocher de la comptabilité. " & _
Chr(13) & Chr(10) & Chr(10) & Chr(13) & _
Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Cordialement." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"FIN Back Office Reporting" & Chr(13) & Chr(10) & _
"FIN/TCO/BO Direction de la Gestion Financière" & Chr(13) & Chr(10) & Chr(10) & _
"Tél : 01 57 72 44 96" & Chr(13) & Chr(10) & Chr(10) _
& Chr(13) & Chr(10) & Chr(13) & Chr(10)

  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.CreateItem(0)
  MonMessage.Subject = "Epargne centralisée (versements-retraits) - Extraction du " & JourExt

  strSQL = "SELECT Adresse FROM T_destinataire"
   MonMessage.To = strSQL 
  ' pour tester
 
  MonMessage.Body = message

' Le .Send fait que le mail est envoyé automatiquement par OUTLOOK mais le .Display bloque le message avant l'envoi pour permettre le controle !!!
  MonMessage.Display

' Ferme la fenêtre de préparation du mail évitant ainsi de cliquer 2 fois sur envoi !
    DoCmd.Close acForm, "F_Mail"


End Function
A voir également:

1 réponse

Messages postés
17111
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 octobre 2021
907
bonjour, suggestion:
Dim dbs As DAO.Database
Dim rs_dest As DAO.Recordset
Dim s_SQL As String, s_dest as string

MonMessage.Body = message
Set dbs = CurrentDb
s_SQL = "SELECT Adresse FROM T_destinataire"
Set rs_dest = dbs.OpenRecordset(s_SQL , dbOpenSnapshot)
Do Until rs_dest.EOF
  s_dest = rs_dest!Adresse
  MonMessage.To = s_dest 
  MonMessage.Display.Edit
  rs_dest.MoveNext
Loop
Messages postés
17111
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 octobre 2021
907 > icecube
et si tu mets un point d'arrêt en ligne 10?
oui j'ai mis un point d’arrêt sur la ligne 10, l'exécustion se déroule bien la boucle a fait 2 tour d’ailleurs car j'ai 2 enregistrement dans la colonne copie.

sauf que que le message est créé, j'ai que le message.To qui est bien rempli, sinon la partie message.CC reste vide. c'est incroyable je comprend plus rien. peut etre le type=olCC n'est pas reconnu dans mon VBA
j'ai enfin trouvé d'où vient le problème. c'est la référence microsoft outlook 16.0 object library qui n'est pas activée. du coup la ça marche nickel.

enfin je te remercie beaucoup pour ton aide c'est très gentil de ta part. ;)

bonne fin de journée à toi
Messages postés
17111
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 octobre 2021
907 > icecube
peut-être n'avais-tu pas mis "option explicit" en début de module? cela permet souvent de trouver rapidement des erreurs.
si si y'a bien un option explicit au début. mais quand il fallait essayer autre chose, du cocher la référence et ça marché. parce que au début le code générer une erreur sur le type = olCC