none
Envoyé un mail à plusieurs adresse depuis base Acess RRS feed

  • Question

  • Bonjour,

    J'ai inscrit ce code qui fonctionne mais ouvre chaque fois un mail différent s'erait il possible de tranformer le code pour qu'il n'ouvre qu'un mail avec toute les adresses des destinataire ?

    Merci d'avance pour vos réponse.

    Private Sub btnEmail_Click()
    Dim rst As DAO.Recordset
    Dim strSQL As String
    Dim strMessageType As String
    Dim strTitre As String
    Dim strMsg As String
    ' Titre du message
    strTitre = " CNE"
    'Message type ? exp?dier
    ' Les signes {...} seront remplac?s plus loin par
    'les infos Client
    strMessageType = "Bonjour {PRENONC}," _
    & vbCrLf & vbCrLf _
    & "Sauf erreur de notre part," _
    & "vous n'avez pas encore payer la cotisation au club ? ce jour." _
    & vbCrLf & "Merci de remedier ? la situation le plus vite possible Merci d'avance" _
    & vbCrLf & vbCrLf & " Le pr?sident du Club."
    'Ouverture de la requ?te
    ' (seuls les clients ayant un email sont concern?s ici)
    strSQL = "SELECT* FROM [QEnvoiMail1] " _
    & "WHERE [EMAILC] IS NOT NULL"
    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
    'Parcourir la liste des clients
    While Not rst.EOF
    'Exp?dier le mail
    SendMail rst("EMAILC"), strNOMC, strMsg, True

    'Client suivant
    rst.MoveNext
    Wend
    ' On lib?re les ressources
    rst.Close
    Set rst = Nothing
    ' Un petit message de confirmation
    MsgBox "Op?ration termin?e !", vbInformation, "CNE"
       
    End Sub
    vendredi 18 octobre 2019 09:57

Toutes les réponses

  • D'ou proviennent les valeurs

    • strNOMC
    • strMsg

    D'une manière ou d'une autre, l'idée générale serait quelque chose du genre

    Private Sub btnEmail_Click()
        Dim rst                   As DAO.Recordset
        Dim strSQL                As String
        Dim strMessageType        As String
        Dim strTitre              As String
        Dim strMsg                As String
        Dim sCourriels        As String
    
        ' Titre du message
        strTitre = " CNE"
        'Message type à expédier
        ' Les signes {...} seront remplac?s plus loin par
        'les infos Client
        strMessageType = "Bonjour {PRENONC}," _
                         & vbCrLf & vbCrLf _
                         & "Sauf erreur de notre part," _
                         & "vous n'avez pas encore payer la cotisation au club ? ce jour." _
                         & vbCrLf & "Merci de remedier ? la situation le plus vite possible Merci d'avance" _
                         & vbCrLf & vbCrLf & " Le pr?sident du Club."
        'Ouverture de la requ?te
        ' (seuls les clients ayant un email sont concernés ici)
        strSQL = "SELECT [EMAILC] FROM [QEnvoiMail1] " _
                 & "WHERE [EMAILC] IS NOT NULL"
        Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
        'Parcourir la liste des clients
        While Not rst.EOF
            If IsNull(rst("EMAILC")) = False Then
                sCourriels = sCourriels & rst("EMAILC") & ";"
            End If
            'Client suivant
            rst.MoveNext
        Wend
        ' On libère les ressources
        rst.Close
        Set rst = Nothing
    
        ' Expédier le mail
        SendMail sCourriels, strNOMC, strMsg, True
    
        ' Un petit message de confirmation
        MsgBox "Opération terminée !", vbInformation, "CNE"
    End Sub

    Tu devrais y r'ajouter un gestionnaire d'erreur (dans tous tes procédures).


    Daniel Pineault, 2010-2019 Microsoft MVP
    Professional Support: http://www.cardaconsultants.com
    MS Access Tips and Code Samples: http://www.devhut.net

    vendredi 18 octobre 2019 16:59