IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Remplissage Champ destinataires d'un mail envoyé par access


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 69
    Par défaut Remplissage Champ destinataires d'un mail envoyé par access
    Bonjour à tout le monde, en ce dimanche pluvieux je continue la base de données que je dois créer pour mon boulot.

    J'ai bien avancé cette semaine au niveau des éditions à partir de toutes mes requêtes.
    Je dois intégrer dans cette base l'envoi de mail à partir de certains formulaires.
    Alors j'ai un formulaire de recherche multi critères sur lequel j'ai créé un bouton pour envoyer les mails.
    Le but ça serait de faire une recherche --> ça crée une liste de résultat stockée dans une requête (RQSource1), parmi les champs de cette requête j'ai un champ Email, je voudrais récupérer tous les mails de ce résultat et envoyer un mail groupé donc.

    J'ai récupéré sur le net des codes pour essayer d'arriver à mes fins et aussi pour essayer de comprendre le fonctionnement de l'opération (c'est pas évident pour moi malheureusement)

    J'ai mis le code suivant sur l'évènement click de mon bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Dim Rs As DAO.Recordset
     
    Set Rs = CurrentDb.OpenRecordset("SELECT RQSource1.EmailPro FROM RQSource1" & " WHERE RQSource1.EmailPro is not null;", dbOpenDynaset)
     
    If Rs.BOF Then
            MsgBox "il n'y a pas d'enregistrements"
            GoTo Exit_Sub
        End If
        Do Until Rs.EOF
            Debug.Print Rs(0)
            Rs.MoveNext
        Loop
    Exit_Sub:
        Rs.Close
        Set Rs = Nothing
     
    DoCmd.SendObject , , , "Rs"
    Lorsque je click sur mon bouton j'ai bien ma messagerie qui s'ouvre sur un nouveau message, ça c'est super c'est ce que je veux.
    Mais ce que je n'arrive pas à faire c'est au niveau de mes destinataires, je voudrais mettre leur adresses à la suite séparées par ";" parce que je veux envoyer mon message à toutes les personnes issues de ma requête, mais ça m'affiche Rs dans destinataires au lieu des différentes adresses !?!

    Si quelqu'un à une idée, une suggestion pour avancer , c'est volontiers

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Par défaut
    Bonjour,

    Le sendObject s'utilise comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.SendObject ObjectType, ObjectName, OutputFormat, To, Cc, Bcc, Subject, MessageText, EditMessage, TemplateFile
    Ta commande n'indique que le 4eme paramètre, le "To", c'est ce paramètre qui doit contenir les adresses mail séparées par des ;
    Tu va devoir construire la chaine de caractère contenant les destinataires dans ton do/loop pour ensuite la passer au sendObject

    Regarde la partie msdn pour plus de détails sur les autres paramètres :
    http://msdn.microsoft.com/library/of...ffice.12).aspx

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 69
    Par défaut
    Au départ j'avais mis un code beaucoup plus "simpliste" du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim strSQL As String
    strSQL= "Select RQSource1.EmailPro FROM RQSource1;"
    DoCmd.SendObject , , , "strSQL"
    J'ai ajouté le openRecordSet parce que beaucoup l'utilise pour passer en revue les enregistrements et récupérer l'information voulue (enfin c'est ce que j'ai compris du moins).
    Mais cela n'a rien changé à mon problème de destinataires multiples en fait.

    Donc je me demande si cela est vraiment utile dans mon cas?
    Si un utilisateur avisé pouvait m'éclairer sur l'utilisation de l'openRecordSet dans mon cas, histoire de pas grossir le code inutilement?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Par défaut
    Je pense que tu est obligé de passer en revu tes enregistrements pour constituer ta liste de destinataire, la méthode sendObject attends une chaine de caractère et pas un objet de type recordset.

    Par exemple ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Set Rs = CurrentDb.OpenRecordset("SELECT RQSource1.EmailPro FROM RQSource1 WHERE RQSource1.EmailPro is not null;", dbOpenDynaset)
     
    Dim myAdressList as string = ""
    If Rs.BOF Then
            MsgBox "il n'y a pas d'enregistrements"
            GoTo Exit_Sub
    End If
    Do Until Rs.EOF
            myAdressList = myAdressList & Rs.Fields("EmailPRO") & "; " 
            Rs.MoveNext
    Loop
     
    DoCmd.SendObject , , , myAdressList
     
    Exit_Sub:
        Rs.Close
        Set Rs = Nothing

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Février 2013
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 69
    Par défaut
    Ok j'ai compris, j'étais parti sur un truc plus compliqué et quand j'ai vu votre exemple j'ai compris l'idée.

    Je l'ai adapté à mon formulaire basé sur ma requête, ça marche impec.
    J'ai juste un problème avec les caractères spéciaux, mais comme c'est pour une messagerie au boulot je ferai d'abord un test dans la semaine au travail, et puis je vérifierai aussi comment ils gèrent les caractères spéciaux avant d'adapter mon format destinataire, je pense d'ailleurs que je formaterai directement le champ Email comme ça il sera adapté.

    Voilà, sinon dans la foulée je devais mettre cette fonction également sur un autre formulaire basé sur une table, eh bien c'est fait.

    Je vous remercie pour le coup de pouce, sur ce forum il y a toujours des gens qui aident gentiment et c'est très appréciable lorsqu'on a perdu le fil.

    Bonne soirée à tous

Discussions similaires

  1. [AC-2003] Paramétrage du texte d'un mail envoyé par Access
    Par edsaar dans le forum VBA Access
    Réponses: 14
    Dernier message: 28/04/2012, 21h47
  2. [AC-2007] Modifier template du mail envoyé par Access, possible ?
    Par hayabusa63 dans le forum IHM
    Réponses: 1
    Dernier message: 01/08/2009, 18h27
  3. [XHTML] Comment mettre du css dans un mail envoyé par mon site?
    Par starr dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 29/12/2006, 07h48
  4. [Encodage] Unicode dans un mail envoyé par servlet
    Par beber69 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 16/09/2005, 17h21
  5. Sauvegarder automatiquement un mail envoyé par asp
    Par Immobilis dans le forum ASP
    Réponses: 7
    Dernier message: 27/10/2004, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo