Personnellement je ferai une table temporaire pour y stoker les infos pour ton email puis je ferai une fonction VBA de concaténation basée sur une requête paramétrée qui me donnerai seulement la liste des emails qui m'intresse.
J'ajouterai le résultat dans ma table temporaire.
Pour la concatenation ça resemblerai à cela :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public function ConcatenerEmail(prmNoCommande as string) as string
dim result as string
dim db as dao.database:set db=currentdb
dim q as dao.querydef:set q=db.querydefs("rSelectionneEmail")
q.pramameters("prmNoCommande")=prmNoCommande
dim r as dao.recordset:set r=q.openrecordset()
'
'ici le code qui calcul result (voir ton post)
'
r.close:set r=nothing
set q=nothing
set db=nothing
ConcatenerEmail=result
end function |
Ta requete devrait resembler à
SELECT Mail FROM mailcommande WHERE N°Commande="""" & [prmNoCommande] & """"
Pour définir un paramètre sur une requête il y a un choix Paramètre dans un des menus où tu peux saisir son nom et son type.
Pour le traitement en lui même,
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
| public sub CreerEMail(prmNoCommande as string)
'Suppose un seul mail à la fois
dim db as dao.database:set db=currentdb
dim q as dao.querydef
'Vide la table temporaire
set q=db.querydefs("rViderTableTempEMail")
q.execute
'Crée un enregistrement pour la commande courrante
set q=db.querydefs("rRemplirTableTempEMail") 'Ceci est une requête d'ajout
q.pramameters("prmNoCommande")=prmNoCommande
q.execute
dim r as dao.recordset: set r=db.openrecordset("TableTempEMail")
r.edit
r![eMail]=ConcatenerEmail(prmNoCommande)
r.update
r.close:set r=nothing
set q=nothing
set db=nothing
end sub |
A+
Partager