J'ai un système d'envoie de mail via access. Pour info le code est
ci-dessous.
Mais si j'ai une liste d'adresse supérieure à 90, le système bloque.
je devrais donc lui dire :
si list>80 (par sécurité) then
ouvre un nouveau message et poursuit et si nécessaire un troisième et un
quatrième.
Je ne sais pas bien comment et où mettre ce texte.
Si vous avez une proposition elle est la bien venue.
Merci
FRans
Private Sub listmail()
Dim db As dao.Database, rs As dao.Recordset
Set db = CurrentDb
'entre guillement la table/requête d'origine
Set rs = db.OpenRecordset("adresses_mail")
Dim list As String
Do
list = list & rs![E-MAIL] & ";"
rs.MoveNext
Loop While Not rs.EOF
adre = list
End Sub
Private Sub Commande10_Click()
Call listmail
Dim Message As New CDO.Message
With Message
If adre <> "" Then
.To = adre
End If
If suje <> "" Then
.Subject = suje
End If
If corp <> "" Then
.TextBody = corp
End If
If attache <> "" Then
.AddAttachment Me![attache]
End If
End With
answer = MsgBox("Alors, on l'envoie ce mail ?", vbYesNo + vbQuestion,
"SERVICE B")
If answer = vbYes Then
Message.Send
Else
Exit Sub
End If
Set Message = Nothing
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"Bauwens François" | J'ai un système d'envoie de mail via access. Pour info le code est | ci-dessous. | Mais si j'ai une liste d'adresse supérieure à 90, le système bloque. | je devrais donc lui dire : | si list>80 (par sécurité) then | ouvre un nouveau message et poursuit et si nécessaire un troisième et un | quatrième. | | | | Private Sub listmail() | Dim db As dao.Database, rs As dao.Recordset | | Set db = CurrentDb | 'entre guillement la table/requête d'origine | Set rs = db.OpenRecordset("adresses_mail") | | Dim list As String | | Do | list = list & rs![E-MAIL] & ";" | rs.MoveNext | | Loop While Not rs.EOF
Le problème doit venir d'ici... Tu place tous les mails dans un seul envoie. Je pense qu'avec tes 90, tu passe la limite possible. Pourquoi n'appelle tu pas le Send à chaque ligne ?
| adre = list | End Sub | | | Private Sub Commande10_Click() | | Call listmail | | Dim Message As New CDO.Message | With Message | If adre <> "" Then | .To = adre | End If | If suje <> "" Then | .Subject = suje | End If | If corp <> "" Then | .TextBody = corp | End If | If attache <> "" Then | .AddAttachment Me![attache] | End If | End With | answer = MsgBox("Alors, on l'envoie ce mail ?", vbYesNo + vbQuestion, | "SERVICE B") | If answer = vbYes Then | Message.Send | Else | Exit Sub | End If | Set Message = Nothing | End Sub |
"Bauwens François"
| J'ai un système d'envoie de mail via access. Pour info le code est
| ci-dessous.
| Mais si j'ai une liste d'adresse supérieure à 90, le système bloque.
| je devrais donc lui dire :
| si list>80 (par sécurité) then
| ouvre un nouveau message et poursuit et si nécessaire un troisième et un
| quatrième.
|
|
|
| Private Sub listmail()
| Dim db As dao.Database, rs As dao.Recordset
|
| Set db = CurrentDb
| 'entre guillement la table/requête d'origine
| Set rs = db.OpenRecordset("adresses_mail")
|
| Dim list As String
|
| Do
| list = list & rs![E-MAIL] & ";"
| rs.MoveNext
|
| Loop While Not rs.EOF
Le problème doit venir d'ici...
Tu place tous les mails dans un seul envoie.
Je pense qu'avec tes 90, tu passe la limite possible.
Pourquoi n'appelle tu pas le Send à chaque ligne ?
| adre = list
| End Sub
|
|
| Private Sub Commande10_Click()
|
| Call listmail
|
| Dim Message As New CDO.Message
| With Message
| If adre <> "" Then
| .To = adre
| End If
| If suje <> "" Then
| .Subject = suje
| End If
| If corp <> "" Then
| .TextBody = corp
| End If
| If attache <> "" Then
| .AddAttachment Me![attache]
| End If
| End With
| answer = MsgBox("Alors, on l'envoie ce mail ?", vbYesNo + vbQuestion,
| "SERVICE B")
| If answer = vbYes Then
| Message.Send
| Else
| Exit Sub
| End If
| Set Message = Nothing
| End Sub
|
"Bauwens François" | J'ai un système d'envoie de mail via access. Pour info le code est | ci-dessous. | Mais si j'ai une liste d'adresse supérieure à 90, le système bloque. | je devrais donc lui dire : | si list>80 (par sécurité) then | ouvre un nouveau message et poursuit et si nécessaire un troisième et un | quatrième. | | | | Private Sub listmail() | Dim db As dao.Database, rs As dao.Recordset | | Set db = CurrentDb | 'entre guillement la table/requête d'origine | Set rs = db.OpenRecordset("adresses_mail") | | Dim list As String | | Do | list = list & rs![E-MAIL] & ";" | rs.MoveNext | | Loop While Not rs.EOF
Le problème doit venir d'ici... Tu place tous les mails dans un seul envoie. Je pense qu'avec tes 90, tu passe la limite possible. Pourquoi n'appelle tu pas le Send à chaque ligne ?
| adre = list | End Sub | | | Private Sub Commande10_Click() | | Call listmail | | Dim Message As New CDO.Message | With Message | If adre <> "" Then | .To = adre | End If | If suje <> "" Then | .Subject = suje | End If | If corp <> "" Then | .TextBody = corp | End If | If attache <> "" Then | .AddAttachment Me![attache] | End If | End With | answer = MsgBox("Alors, on l'envoie ce mail ?", vbYesNo + vbQuestion, | "SERVICE B") | If answer = vbYes Then | Message.Send | Else | Exit Sub | End If | Set Message = Nothing | End Sub |
Merci. Je ne vois pas bien comment je vais écrire ça en code vba mais je vais essayé ! Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents, non ? Frans
"3stone" a écrit dans le message de news:
Salut,
"Bauwens François" | J'ai un système d'envoie de mail via access. Pour info le code est | ci-dessous. | Mais si j'ai une liste d'adresse supérieure à 90, le système bloque. | je devrais donc lui dire : | si list>80 (par sécurité) then | ouvre un nouveau message et poursuit et si nécessaire un troisième et un | quatrième. | | | | Private Sub listmail() | Dim db As dao.Database, rs As dao.Recordset | | Set db = CurrentDb | 'entre guillement la table/requête d'origine | Set rs = db.OpenRecordset("adresses_mail") | | Dim list As String | | Do | list = list & rs![E-MAIL] & ";" | rs.MoveNext | | Loop While Not rs.EOF
Le problème doit venir d'ici... Tu place tous les mails dans un seul envoie. Je pense qu'avec tes 90, tu passe la limite possible. Pourquoi n'appelle tu pas le Send à chaque ligne ?
| adre = list | End Sub | | | Private Sub Commande10_Click() | | Call listmail | | Dim Message As New CDO.Message | With Message | If adre <> "" Then | .To = adre | End If | If suje <> "" Then | .Subject = suje | End If | If corp <> "" Then | .TextBody = corp | End If | If attache <> "" Then | .AddAttachment Me![attache] | End If | End With | answer = MsgBox("Alors, on l'envoie ce mail ?", vbYesNo + vbQuestion, | "SERVICE B") | If answer = vbYes Then | Message.Send | Else | Exit Sub | End If | Set Message = Nothing | End Sub |
Merci.
Je ne vois pas bien comment je vais écrire ça en code vba mais je vais
essayé !
Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents, non
?
Frans
"3stone" <3stone_@_skynet_be> a écrit dans le message de
news:uaLmbjlMGHA.2668@tk2msftngp13.phx.gbl...
Salut,
"Bauwens François"
| J'ai un système d'envoie de mail via access. Pour info le code est
| ci-dessous.
| Mais si j'ai une liste d'adresse supérieure à 90, le système bloque.
| je devrais donc lui dire :
| si list>80 (par sécurité) then
| ouvre un nouveau message et poursuit et si nécessaire un troisième et un
| quatrième.
|
|
|
| Private Sub listmail()
| Dim db As dao.Database, rs As dao.Recordset
|
| Set db = CurrentDb
| 'entre guillement la table/requête d'origine
| Set rs = db.OpenRecordset("adresses_mail")
|
| Dim list As String
|
| Do
| list = list & rs![E-MAIL] & ";"
| rs.MoveNext
|
| Loop While Not rs.EOF
Le problème doit venir d'ici...
Tu place tous les mails dans un seul envoie.
Je pense qu'avec tes 90, tu passe la limite possible.
Pourquoi n'appelle tu pas le Send à chaque ligne ?
| adre = list
| End Sub
|
|
| Private Sub Commande10_Click()
|
| Call listmail
|
| Dim Message As New CDO.Message
| With Message
| If adre <> "" Then
| .To = adre
| End If
| If suje <> "" Then
| .Subject = suje
| End If
| If corp <> "" Then
| .TextBody = corp
| End If
| If attache <> "" Then
| .AddAttachment Me![attache]
| End If
| End With
| answer = MsgBox("Alors, on l'envoie ce mail ?", vbYesNo + vbQuestion,
| "SERVICE B")
| If answer = vbYes Then
| Message.Send
| Else
| Exit Sub
| End If
| Set Message = Nothing
| End Sub
|
Merci. Je ne vois pas bien comment je vais écrire ça en code vba mais je vais essayé ! Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents, non ? Frans
"3stone" a écrit dans le message de news:
Salut,
"Bauwens François" | J'ai un système d'envoie de mail via access. Pour info le code est | ci-dessous. | Mais si j'ai une liste d'adresse supérieure à 90, le système bloque. | je devrais donc lui dire : | si list>80 (par sécurité) then | ouvre un nouveau message et poursuit et si nécessaire un troisième et un | quatrième. | | | | Private Sub listmail() | Dim db As dao.Database, rs As dao.Recordset | | Set db = CurrentDb | 'entre guillement la table/requête d'origine | Set rs = db.OpenRecordset("adresses_mail") | | Dim list As String | | Do | list = list & rs![E-MAIL] & ";" | rs.MoveNext | | Loop While Not rs.EOF
Le problème doit venir d'ici... Tu place tous les mails dans un seul envoie. Je pense qu'avec tes 90, tu passe la limite possible. Pourquoi n'appelle tu pas le Send à chaque ligne ?
| adre = list | End Sub | | | Private Sub Commande10_Click() | | Call listmail | | Dim Message As New CDO.Message | With Message | If adre <> "" Then | .To = adre | End If | If suje <> "" Then | .Subject = suje | End If | If corp <> "" Then | .TextBody = corp | End If | If attache <> "" Then | .AddAttachment Me![attache] | End If | End With | answer = MsgBox("Alors, on l'envoie ce mail ?", vbYesNo + vbQuestion, | "SERVICE B") | If answer = vbYes Then | Message.Send | Else | Exit Sub | End If | Set Message = Nothing | End Sub |
"Bauwens François" | Je ne vois pas bien comment je vais écrire ça en code vba mais je vais | essayé ! | Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents, non?
Si dans ta boucle "Do... Loop" tu incorpore un petit compteur et que, disons arrivé à 50 tu envoie le mail en appelant ta sub (que tu devrais transformer en Fonction et transmettre la liste des destinataires) tu remets le compteur à zéro et tu continue dans ta boucle...
Dim list As String , compteur as integer
Do list = list & rs![E-MAIL] & ";" compteur = compteur + 1
rs.MoveNext
if compteur => 50 OR rs.EOF then fnEnvoieMail(list) list = "" compteur = 0 end if
"Bauwens François"
| Je ne vois pas bien comment je vais écrire ça en code vba mais je vais
| essayé !
| Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents, non?
Si dans ta boucle "Do... Loop" tu incorpore un petit compteur
et que, disons arrivé à 50 tu envoie le mail en appelant ta sub
(que tu devrais transformer en Fonction et transmettre la liste des destinataires)
tu remets le compteur à zéro et tu continue dans ta boucle...
Dim list As String , compteur as integer
Do
list = list & rs![E-MAIL] & ";"
compteur = compteur + 1
rs.MoveNext
if compteur => 50 OR rs.EOF then
fnEnvoieMail(list)
list = ""
compteur = 0
end if
"Bauwens François" | Je ne vois pas bien comment je vais écrire ça en code vba mais je vais | essayé ! | Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents, non?
Si dans ta boucle "Do... Loop" tu incorpore un petit compteur et que, disons arrivé à 50 tu envoie le mail en appelant ta sub (que tu devrais transformer en Fonction et transmettre la liste des destinataires) tu remets le compteur à zéro et tu continue dans ta boucle...
Dim list As String , compteur as integer
Do list = list & rs![E-MAIL] & ";" compteur = compteur + 1
rs.MoveNext
if compteur => 50 OR rs.EOF then fnEnvoieMail(list) list = "" compteur = 0 end if
merci je tente... "3stone" a écrit dans le message de news:%
Salut,
"Bauwens François" | Je ne vois pas bien comment je vais écrire ça en code vba mais je vais | essayé ! | Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents, non?
Si dans ta boucle "Do... Loop" tu incorpore un petit compteur et que, disons arrivé à 50 tu envoie le mail en appelant ta sub (que tu devrais transformer en Fonction et transmettre la liste des destinataires)
tu remets le compteur à zéro et tu continue dans ta boucle...
Dim list As String , compteur as integer
Do list = list & rs![E-MAIL] & ";" compteur = compteur + 1
rs.MoveNext
if compteur => 50 OR rs.EOF then fnEnvoieMail(list) list = "" compteur = 0 end if
merci je tente...
"3stone" <3stone_@_skynet_be> a écrit dans le message de
news:%23zTQpKvMGHA.3728@tk2msftngp13.phx.gbl...
Salut,
"Bauwens François"
| Je ne vois pas bien comment je vais écrire ça en code vba mais je vais
| essayé !
| Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents,
non?
Si dans ta boucle "Do... Loop" tu incorpore un petit compteur
et que, disons arrivé à 50 tu envoie le mail en appelant ta sub
(que tu devrais transformer en Fonction et transmettre la liste des
destinataires)
tu remets le compteur à zéro et tu continue dans ta boucle...
Dim list As String , compteur as integer
Do
list = list & rs![E-MAIL] & ";"
compteur = compteur + 1
rs.MoveNext
if compteur => 50 OR rs.EOF then
fnEnvoieMail(list)
list = ""
compteur = 0
end if
merci je tente... "3stone" a écrit dans le message de news:%
Salut,
"Bauwens François" | Je ne vois pas bien comment je vais écrire ça en code vba mais je vais | essayé ! | Ceci dit, il doit bien y avoir de faire des blocs d'adresses différents, non?
Si dans ta boucle "Do... Loop" tu incorpore un petit compteur et que, disons arrivé à 50 tu envoie le mail en appelant ta sub (que tu devrais transformer en Fonction et transmettre la liste des destinataires)
tu remets le compteur à zéro et tu continue dans ta boucle...
Dim list As String , compteur as integer
Do list = list & rs![E-MAIL] & ";" compteur = compteur + 1
rs.MoveNext
if compteur => 50 OR rs.EOF then fnEnvoieMail(list) list = "" compteur = 0 end if