Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Email Liste des destinataires

18 réponses
Avatar
Xavier
Bonjour,

J'essaye d'envoyer un message depuis Access vers plusieurs destinataires
recensés dans une table.

Mon problème est que je n'arrive pas a dire a access d'envoyer ce message en
se basant sur cette table.

J'ai bien essayé ça :

Dim Destinataire as String

Destinataire = Matable!destmail

mais je me perd complètement (débutant oblige).

Merci d'avance pour votre aide

Xavier

10 réponses

1 2
Avatar
Raymond [mvp]
bonjour.

1ere précision, veux-tu envoyer un messages à tout le monde? à ceux qui
sont codés spécialement dans un champ ? à ceux qui sont inclus dans le
formulaire ? sais-tu envoyer un message hors le problème des
multi-destinataires ? etc.....
si tu ne sais pas envoyer un message : voir les pages:
http://access.seneque.free.fr/envoi_message.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access.seneque.free.fr/envoi_message.htm
http://memoaccess.free.fr/outlook.htm#SendMailOutlook
http://www.logicielappui.com/tips/
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Xavier" a écrit dans le message de
news:%
Bonjour,

J'essaye d'envoyer un message depuis Access vers plusieurs destinataires
recensés dans une table.

Mon problème est que je n'arrive pas a dire a access d'envoyer ce message
en

se basant sur cette table.

J'ai bien essayé ça :

Dim Destinataire as String

Destinataire = Matable!destmail

mais je me perd complètement (débutant oblige).

Merci d'avance pour votre aide

Xavier




Avatar
Xavier
Bonjour Raymond,

1ere précision, veux-tu envoyer un messages à tout le monde?
Je veux envoyer un message à toutes les adresses contenues dans "Matable1"

du champ "Emaildest" dans un premier temps afin de ne pas trop compliquer la
tache de programmation

à ceux qui sont codés spécialement dans un champ ?
J'imagine qu'a terme les gens à qui j'envoi (ce que j'appel

) les message d'informations de modification d'un
formulaire (travail en collaboration) ne voudront plus être informés de tel
ou tel evenement sur la base Access 2003 (Mais quand il n'y aura plus qu'a
joué avec la fonction Si... Then... avec des cases a cocher pour chaque
destinataire je me débrouillerai tous seul)

sais-tu envoyer un message hors le problème des multi-destinataires ?


J'exploite ce bout de code
(http://memoaccess.free.fr/outlook.htm#SendMailCDO) en ayant suivi la
procédure d'installation du Serveur Virtuel SMTP sous XP
(http://www.asp-php.net/tutorial/asp-php/serveur_smtp.php). L'avantage de
SendMailCDO étant de pouvoir changer l'emetteur et passer outre les messages
de sécurité sous Windows XP.

Voilà

Xavier

"Raymond [mvp]" a écrit dans le message de
news:
bonjour.

1ere précision, veux-tu envoyer un messages à tout le monde? à ceux qui
sont codés spécialement dans un champ ? à ceux qui sont inclus dans le
formulaire ? sais-tu envoyer un message hors le problème des
multi-destinataires ? etc.....
si tu ne sais pas envoyer un message : voir les pages:
http://access.seneque.free.fr/envoi_message.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access.seneque.free.fr/envoi_message.htm
http://memoaccess.free.fr/outlook.htm#SendMailOutlook
http://www.logicielappui.com/tips/
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Xavier" a écrit dans le message de
news:%
Bonjour,

J'essaye d'envoyer un message depuis Access vers plusieurs destinataires
recensés dans une table.

Mon problème est que je n'arrive pas a dire a access d'envoyer ce
message


en
se basant sur cette table.

J'ai bien essayé ça :

Dim Destinataire as String

Destinataire = Matable!destmail

mais je me perd complètement (débutant oblige).

Merci d'avance pour votre aide

Xavier








Avatar
Raymond [mvp]
je ne peux pas joindre le site à Arnaud donc je ne me rappelle plus s'il
prend tous les destinataires à la fois ou un par un .
pour lire ta table tu fais:

Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
If Rs.BOF Then Exit_Function
Do Until Rs.EOF

' ici soit envoi message soit concaténation des noms

Loop
'ici envoi du message pour les destinataires concaténés

Exit_Function:
Rs.Close
Set Rs = Nothing
Set Db = Nothing


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Xavier" a écrit dans le message de
news:
Bonjour Raymond,

1ere précision, veux-tu envoyer un messages à tout le monde?
Je veux envoyer un message à toutes les adresses contenues dans "Matable1"

du champ "Emaildest" dans un premier temps afin de ne pas trop compliquer
la

tache de programmation

à ceux qui sont codés spécialement dans un champ ?
J'imagine qu'a terme les gens à qui j'envoi (ce que j'appel

) les message d'informations de modification d'un
formulaire (travail en collaboration) ne voudront plus être informés de
tel

ou tel evenement sur la base Access 2003 (Mais quand il n'y aura plus qu'a
joué avec la fonction Si... Then... avec des cases a cocher pour chaque
destinataire je me débrouillerai tous seul)

sais-tu envoyer un message hors le problème des multi-destinataires ?


J'exploite ce bout de code
(http://memoaccess.free.fr/outlook.htm#SendMailCDO) en ayant suivi la
procédure d'installation du Serveur Virtuel SMTP sous XP
(http://www.asp-php.net/tutorial/asp-php/serveur_smtp.php). L'avantage de
SendMailCDO étant de pouvoir changer l'emetteur et passer outre les
messages

de sécurité sous Windows XP.

Voilà

Xavier



Avatar
Xavier
Ok

le code ressemble maintenant à ceci

'----------------------------------
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim Destinataire As String
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
If Rs.BOF Then GoTo Exit_Function
Do Until Rs.EOF

Destinataire = Rs

With CreateObject("CDO.Message")
.From = ""
.To = Destinataire
.Subject = "Sujet"
.TextBody = "corp du message" _
& vbNewLine & vbNewLine _
& "Signature" & vbNewLine _
& "société" & vbNewLine _
& "Adresse société" & vbNewLine _
& "CP + VILLE"
'.AddAttachment ("C:Mes FichiersMon Fichier_1.ext")
'.AddAttachment ("C:Mes FichiersMon Fichier_2.ext")
On Error Resume Next
.Send
If Err Then MsgBox "Le message n'a pas pu être expédié."
On Error GoTo 0
End With

Loop

Exit_Function:
Rs.Close
Set Rs = Nothing
Set Db = Nothing

End Function
'------------------------------

J'ai maintenant cette erreur : erreur de compilation - Incompatibilité de
type sur Destinataire = Rs

et lorsque je remplace .to = Destinataire par .to = Rs c'est pareil



"Raymond [mvp]" a écrit dans le message de
news:%23%
je ne peux pas joindre le site à Arnaud donc je ne me rappelle plus s'il
prend tous les destinataires à la fois ou un par un .
pour lire ta table tu fais:

Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
If Rs.BOF Then Exit_Function
Do Until Rs.EOF

' ici soit envoi message soit concaténation des noms

Loop
'ici envoi du message pour les destinataires concaténés

Exit_Function:
Rs.Close
Set Rs = Nothing
Set Db = Nothing


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Xavier" a écrit dans le message de
news:
Bonjour Raymond,

1ere précision, veux-tu envoyer un messages à tout le monde?
Je veux envoyer un message à toutes les adresses contenues dans

"Matable1"


du champ "Emaildest" dans un premier temps afin de ne pas trop
compliquer


la
tache de programmation

à ceux qui sont codés spécialement dans un champ ?
J'imagine qu'a terme les gens à qui j'envoi (ce que j'appel

) les message d'informations de modification d'un
formulaire (travail en collaboration) ne voudront plus être informés de
tel

ou tel evenement sur la base Access 2003 (Mais quand il n'y aura plus
qu'a


joué avec la fonction Si... Then... avec des cases a cocher pour chaque
destinataire je me débrouillerai tous seul)

sais-tu envoyer un message hors le problème des multi-destinataires ?


J'exploite ce bout de code
(http://memoaccess.free.fr/outlook.htm#SendMailCDO) en ayant suivi la
procédure d'installation du Serveur Virtuel SMTP sous XP
(http://www.asp-php.net/tutorial/asp-php/serveur_smtp.php). L'avantage
de


SendMailCDO étant de pouvoir changer l'emetteur et passer outre les
messages

de sécurité sous Windows XP.

Voilà

Xavier







Avatar
Eric
Bonjour Xavier,

Normal cette erreur car RS est un recordset et Destinataire esr de type
String.

Il faut que tu construises la chaine des destinataires de cette maniere

While not rs.eof
destinataire = destinataire & rs.ChampDestinataire & ";"
rs.movenext
Wend

et apres tu la passes à .To, donc le With CreateObject("CDO.Message")
vient apres la fin du jeu d'enregistrements rs.

A+
Eric


sous réserve de guillemets entourant le nom des destinataires et que le
séparateur soit bien un ;

A+
Eric

"Xavier" écrivait
news::

Ok

le code ressemble maintenant à ceci

'----------------------------------
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim Destinataire As String
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
If Rs.BOF Then GoTo Exit_Function
Do Until Rs.EOF

Destinataire = Rs

With CreateObject("CDO.Message")
.From = ""
.To = Destinataire
.Subject = "Sujet"
.TextBody = "corp du message" _
& vbNewLine & vbNewLine _
& "Signature" & vbNewLine _
& "société" & vbNewLine _
& "Adresse société" & vbNewLine _
& "CP + VILLE"
'.AddAttachment ("C:Mes FichiersMon Fichier_1.ext")
'.AddAttachment ("C:Mes FichiersMon Fichier_2.ext")
On Error Resume Next
.Send
If Err Then MsgBox "Le message n'a pas pu être expédié."
On Error GoTo 0
End With

Loop

Exit_Function:
Rs.Close
Set Rs = Nothing
Set Db = Nothing

End Function
'------------------------------

J'ai maintenant cette erreur : erreur de compilation - Incompatibilité
de type sur Destinataire = Rs

et lorsque je remplace .to = Destinataire par .to = Rs c'est pareil



"Raymond [mvp]" a écrit dans le message
de news:%23%
je ne peux pas joindre le site à Arnaud donc je ne me rappelle plus
s'il prend tous les destinataires à la fois ou un par un .
pour lire ta table tu fais:

Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
If Rs.BOF Then Exit_Function
Do Until Rs.EOF

' ici soit envoi message soit concaténation des noms

Loop
'ici envoi du message pour les destinataires concaténés

Exit_Function:
Rs.Close
Set Rs = Nothing
Set Db = Nothing


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Xavier" a écrit dans le message de
news:
Bonjour Raymond,

1ere précision, veux-tu envoyer un messages à tout le monde?
Je veux envoyer un message à toutes les adresses contenues dans

"Matable1"


du champ "Emaildest" dans un premier temps afin de ne pas trop
compliquer


la
tache de programmation

à ceux qui sont codés spécialement dans un champ ?
J'imagine qu'a terme les gens à qui j'envoi (ce que j'appel

) les message d'informations de modification d'un
formulaire (travail en collaboration) ne voudront plus être
informés de
tel

ou tel evenement sur la base Access 2003 (Mais quand il n'y aura
plus
qu'a


joué avec la fonction Si... Then... avec des cases a cocher pour
chaque destinataire je me débrouillerai tous seul)

sais-tu envoyer un message hors le problème des
multi-destinataires ?


J'exploite ce bout de code
(http://memoaccess.free.fr/outlook.htm#SendMailCDO) en ayant suivi
la procédure d'installation du Serveur Virtuel SMTP sous XP
(http://www.asp-php.net/tutorial/asp-php/serveur_smtp.php).
L'avantage
de


SendMailCDO étant de pouvoir changer l'emetteur et passer outre les
messages

de sécurité sous Windows XP.

Voilà

Xavier












Avatar
Raymond [mvp]
Là, il faut indiquer le champ de la table: Destinataire = Rs
Destinataire = Rs(3) pour indiquer le champ4 par exemple
Destinataire = Rs("destmail") pour indiquer le champ par son nom
Destinataire = Rs!destmail autre variante

tu peux indiquer le Rs!destmail directement dans le .to
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Xavier" a écrit dans le message de
news:
Ok

le code ressemble maintenant à ceci

'----------------------------------
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Dim Destinataire As String
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("table1")
If Rs.BOF Then GoTo Exit_Function
Do Until Rs.EOF

Destinataire = Rs

With CreateObject("CDO.Message")
.From = ""
.To = Destinataire
.Subject = "Sujet"
.TextBody = "corp du message" _
& vbNewLine & vbNewLine _
& "Signature" & vbNewLine _
& "société" & vbNewLine _
& "Adresse société" & vbNewLine _
& "CP + VILLE"
'.AddAttachment ("C:Mes FichiersMon Fichier_1.ext")
'.AddAttachment ("C:Mes FichiersMon Fichier_2.ext")
On Error Resume Next
.Send
If Err Then MsgBox "Le message n'a pas pu être expédié."
On Error GoTo 0
End With

Loop

Exit_Function:
Rs.Close
Set Rs = Nothing
Set Db = Nothing

End Function
'------------------------------

J'ai maintenant cette erreur : erreur de compilation - Incompatibilité de
type sur Destinataire = Rs

et lorsque je remplace .to = Destinataire par .to = Rs c'est pareil


Avatar
Raymond [mvp]
Bonjour Eric

d'après moi, la fonction ne "fonctionne" qu'en mono-destinataire car il n'y
a pas de fonction de résolution d'adresse, à moins qu'il existe le .AddTo ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
Bonjour Xavier,

Normal cette erreur car RS est un recordset et Destinataire esr de type
String.

Il faut que tu construises la chaine des destinataires de cette maniere

While not rs.eof
destinataire = destinataire & rs.ChampDestinataire & ";"
rs.movenext
Wend

et apres tu la passes à .To, donc le With CreateObject("CDO.Message")
vient apres la fin du jeu d'enregistrements rs.

A+
Eric


sous réserve de guillemets entourant le nom des destinataires et que le
séparateur soit bien un ;

A+
Eric



Avatar
Eric
re,

Lire :
destinataire = destinataire & rs!ChampDestinataire & ";"

au lieu de :
destinataire = destinataire & rs.ChampDestinataire & ";"

Eric


Eric écrivait
news::

Bonjour Xavier,

Normal cette erreur car RS est un recordset et Destinataire esr de type
String.

Il faut que tu construises la chaine des destinataires de cette maniere

While not rs.eof
destinataire = destinataire & rs.ChampDestinataire & ";"
rs.movenext
Wend

et apres tu la passes à .To, donc le With CreateObject("CDO.Message")
vient apres la fin du jeu d'enregistrements rs.

A+
Eric


sous réserve de guillemets entourant le nom des destinataires et que le
séparateur soit bien un ;

A+
Eric



Avatar
Eric
"Raymond [mvp]" écrivait
news::

Bonjour Eric

d'après moi, la fonction ne "fonctionne" qu'en mono-destinataire car
il n'y a pas de fonction de résolution d'adresse, à moins qu'il existe
le .AddTo ?



Rebonjour Raymond,

Je te fais totalement confiance car je ne suis pas spécialiste du tout.
J'ai répondu surtout pour son problème d'affectation d'un recordset à un
String ! Et j'ai supposé faire comme pour un SendObject, propriété cc.

A+
Eric

Avatar
Raymond [mvp]
Anor va nous confirmer ça.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
1 2