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

Access Discussion :

publipostage : comment éviter les doublons?


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut publipostage : comment éviter les doublons?
    bonjour à tous, j'ai une petite requête qui envoie une série d'informations vers une adresse unique à exporter sous word, comment puis-je faire pour qu'il n'envoie pas un mail par information, mais tout regroupé pour que la personne aie tout dans le meme courrier?
    exemple :
    je dois tenir au courant un client que plusieurs fichiers sont a sa disposition, mais je ne veux pas qu'il recoive un mail par fichier mais un seul mail unique qui lui dise tout les fichiers qui sont a sa disposition d'un coup d'un seul

  2. #2
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Faire une requête paramétrée avec pour paramètre ton client tu aura toutes les infos de ce client et lors de l'envoi du mail tu y ajoute toutes les données de ce client. C'est une solution, il y en a peut-être d'autres.

    @+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut
    tu veux dire une double requête? c'est ce que j'avais tenté de faire mais ca ne marchais pas mieux quand je faisais une requête dans une requête.
    peut être est-ce un problème a traiter dans word et non dans access? (le problème c'est que je n'ai que office 2000 et qu'il est très limité au niveau des options importations requêtes access pour le publipostage)

  4. #4
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Ne peux-tu pas gérer les doublons dans access et publiposter par clients ? Cet à dire toutes les infos du même client. ?

    @+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut
    ba c'est la le problème...
    si je fais une requête, automatiquement pour chaque fichier il me marquera une fois l'adresse mail, et donc si il me marque une fois l'adresse mail par fichier, ba alors automatiquement il va faire un mail par enregistrement

  6. #6
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Si j'ai bien compris la gestion des mails n'est pas par Access ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut
    oui, je fais ma requete que j'extrait vers word, a vrai dire je ne sais pas trop comment faire du publipostage directement par access, je n'ai pas eu une formation très poussée. Et de toute manière c'est tout de suite plus compliqué de faire ca par access pour la mise en page.

  8. #8
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Donc chaque enregistrement te créer un fichier et chaque fichiers adresse un mail. As-tu esseyé de voir du côté de Word ?
    Désolé mais là je na maîtrise pas le publipostage. Je vais esseyé de trouver un truc là dessus.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut
    oui j'ai regardé dans word, je n'ai pas trouvé grand chose non plus ...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut
    ca y'est en effet j'ai trouvé c'était bien dans word...
    je m'explique, il faut donc en fait créer un document de publipostage dans word sous forme de catalogue... toutes les informations apparaitront alors à la suite, a vous de la mettre en page... ensuite comme d'habitude mettre le champs adresse mail lors de la fusion du mailing.
    merci pour ton aide

  11. #11
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    De rien, ce fût un plaisir et en plus j'en apprend.

    @+

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut
    correction, il n'est pas possible de rentrer plusieurs adresses mails lorsque l'on fait un catalogue ou je ne vois pas la solution, je vais chercher j'éditerais si je trouve un moyen

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Si tu veux t'en inspirer, voici un code que j'utilise pour envoyer une série de mail regroupant tous les enregistrements qui concernent le destinataire du mail.

    En quelques mots :
    Je regroupe dans une table tmp toutes les données de toutes les personnes.
    J'en extrais la liste des personnes.
    Pour chaque personne, je fais une sélection des données qui la concerne, et je mets ces données dans un fichier Excel. J'envoie un mail à cette personne avec le fichier en pièce jointe.
    Je passe à la personne suivante ...

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    Option Compare Database
    Option Explicit
     
     
    Public Sub Bilan()
    Dim rs As Recordset
    Dim Rs_Id As Recordset
    Dim SQl As String
    Dim Derniere_date As String
    Dim Chaine As String 'critères de tri
    Dim ExcelSheet As Object, Worksheet As Object
    Dim I As Integer
    Dim J As Integer
    Dim K As Integer
    Dim Chemin As String
    Dim Nom As String
     
     
    DoCmd.SetWarnings False
     
     
     
     
    SQl = "delete * from TMP"
    DoCmd.RunSQL SQl
     
    MAJqtepourPPM
     
     
    ' extract de réclamation vers TMP des PAC ouverts et ce ceux fermé avec une quantité non confirmée
     
     
    SQl = " SELECT T_Utilisateur.nom_user, T_Utilisateur.Email, T_Reclamation.re_numero AS Numero_PAC, T_clients.cl_nom, T_Reclamation.re_reclamation_client, T_Reclamation.re_date_emission_rc, T_Reclamation.re_designation_produit, T_Reclamation.re_reference_produit_flers AS Ref_Faurecia, T_Reclamation.re_quantité_produit_defectueux, T_Reclamation.re_PPM, IIf([re_PPM_CC]=-1,'OUI','NON') AS [Quantité confirmée ?], First(T_Reclamation.re_libelle_defaut) AS Libelle_defaut, T_Reclamation.re_date_creation_dossier AS Date_PAC, T_upa.up_nom, First(T_Reclamation.re_cause_non_detec_defaut) AS Cause_non_detec_defaut, First(T_Reclamation.re_cause_defaut) AS Cause_defaut, Sum(T_couts.co_cout) AS Somme_cout, IIf([re_type_produit]='Série','Série','PNX') AS Type_produit, T_Reclamation.prd_type AS Famille_produit, IIf([re_origine]='1','Interne','Externe') AS Origine_defaut_Faurecia, T_origine_defaut.or_etudes AS Origine_Defaut, " _
        & " T_type_defaut.ty_aspect_peinture AS Type_defaut, IIf(T_Reclamation.re_gravite_defaut='1','Léger',IIf(T_Reclamation.re_gravite_defaut='2','Moyen','Haut')) AS gravité, T_Reclamation.re_date_cloture, IIf(T_Reclamation.re_recurrence=0,'NON','OUI') AS Recurrence, IIf(T_Reclamation.re_prise_en_compte=2,'OUI',IIf(T_Reclamation.re_prise_en_compte=1,'NON','COMEX')) AS Prise_En_Compte, T_type_produit.prd_usine INTO TMP " _
        & " FROM T_type_defaut RIGHT JOIN ((T_origine_defaut RIGHT JOIN (T_Utilisateur RIGHT JOIN (((T_upa RIGHT JOIN (T_Reclamation LEFT JOIN T_clients ON T_Reclamation.cl_code = T_clients.cl_code) ON T_upa.up_code = T_Reclamation.re_upa) LEFT JOIN T_type_produit ON T_Reclamation.prd_type = T_type_produit.prd_type) LEFT JOIN T_Produit_retour ON T_Reclamation.re_numero = T_Produit_retour.rt_numero_reclamation_client) ON T_Utilisateur.login = T_Reclamation.re_createur) ON T_origine_defaut.or_code = T_Reclamation.or_code) LEFT JOIN T_couts ON T_Reclamation.re_numero = T_couts.re_numero) ON T_type_defaut.ty_code = T_Reclamation.ty_code " _
        & " GROUP BY T_Utilisateur.nom_user, T_Utilisateur.Email, T_Reclamation.re_numero, T_clients.cl_nom, T_Reclamation.re_reclamation_client, T_Reclamation.re_date_emission_rc, T_Reclamation.re_designation_produit, T_Reclamation.re_reference_produit_flers, T_Reclamation.re_quantité_produit_defectueux, T_Reclamation.re_PPM, IIf([re_PPM_CC]=-1,'OUI','NON'), T_Reclamation.re_date_creation_dossier, T_upa.up_nom, IIf([re_type_produit]='Série','Série','PNX'), T_Reclamation.prd_type, IIf([re_origine]='1','Interne','Externe'), T_origine_defaut.or_etudes, T_type_defaut.ty_aspect_peinture, IIf(T_Reclamation.re_gravite_defaut='1','Léger',IIf(T_Reclamation.re_gravite_defaut='2','Moyen','Haut')), T_Reclamation.re_date_cloture, IIf(T_Reclamation.re_recurrence=0,'NON','OUI'), IIf(T_Reclamation.re_prise_en_compte=2,'OUI',IIf(T_Reclamation.re_prise_en_compte=1,'NON','COMEX')), T_type_produit.prd_usine, T_Reclamation.re_prise_en_compte " _
        & " HAVING (((T_Reclamation.re_numero) Like ""qfr*"") AND ((T_Reclamation.re_PPM) Is Null) AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""OUI"") AND ((T_Reclamation.re_date_cloture) Is Not Null)) OR (((T_Reclamation.re_numero) Like ""qfr*"") AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""NON"") AND ((T_Reclamation.re_date_cloture) Is Not Null)) OR (((T_Reclamation.re_numero) Like ""qfr*"") AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""NON"") AND ((T_Reclamation.re_date_cloture) Is Null)) OR (((T_Reclamation.re_numero) Like ""qfr*"") AND ((T_Reclamation.re_PPM) Is Null) AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""OUI"") AND ((T_Reclamation.re_date_cloture) Is Null)) OR (((T_Reclamation.re_numero) Like ""qfr*"") AND ((T_Reclamation.re_PPM) Is Not Null) AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""OUI"") AND ((T_Reclamation.re_date_cloture) Is Null)) " _
        & " ORDER BY T_Utilisateur.nom_user, T_Reclamation.re_numero, T_clients.cl_nom;"
     
     
     
     
    DoCmd.RunSQL SQl
     
     
    'sélection de chacun des utilisateur et création de l'analyse pour chacun d'eux
    SQl = "SELECT TMP.nom_user, TMP.Email FROM TMP GROUP BY TMP.nom_user, TMP.Email;"
    Set Rs_Id = CurrentDb.OpenRecordset(SQl, dbOpenDynaset)
    Rs_Id.MoveLast
    Rs_Id.MoveFirst
     
    For K = 1 To Rs_Id.RecordCount
     
            'selections des infos relatives à l'utilisateur Rs_Id(0)
            SQl = "SELECT TMP.* FROM TMP WHERE (((TMP.nom_user)=""" & Rs_Id(0) & """));"
            Set rs = CurrentDb.OpenRecordset(SQl, dbOpenDynaset)
     
     
            Set ExcelSheet = GetObject(fExtractUntilLast(CurrentDb.Name, "\") & "\excel\bilan mensuel.xls")
     
            ExcelSheet.Application.DisplayAlerts = False
     
            If Not ExcelSheet.Application.Visible = True Then ExcelSheet.Application.Visible = True
            ExcelSheet.Application.Windows("bilan mensuel.xls").Visible = True
     
            rs.MoveLast
            rs.MoveFirst
     
     
            With ExcelSheet.sheets(1)
     
                For I = 2 To rs.RecordCount + 1
                    For J = 1 To 27
                        .cells(I, J + 1) = rs(J - 1)
                    Next
                    rs.MoveNext
                Next
                .Rows("2:" & rs.RecordCount + 1).RowHeight = 13
     
     
     
     
            End With
            Chemin = left(CurrentDb.Name, 30) & "Documents\"
            Nom = "Bilan mensuel " & Rs_Id(0) & " " & Day(Now) & "-" & Month(Now) & "-" & Year(Now)
            ExcelSheet.SaveAs Chemin & Nom & ".xls"
            ExcelSheet.Application.DisplayAlerts = True
     
            If ExcelSheet.Application.workbooks.Count > 1 Then
                ExcelSheet.Application.workbooks(Chemin & Nom & ".xls").Close
            Else
                ExcelSheet.Application.Quit
            End If
     
            SQl = "Salut, " & Chr(10) & Chr(10) & "Vous trouverez ci-joint le bilan périodique des réclamations que vous avez créées depuis le 01/01/05."
     
            mailer 1, 1, "" & Chemin & Nom & ".xls", Rs_Id(1), "", "", "", "", "", "", "", "", "", "Bilan mensuel des réclamations", SQl, , False
     
            Rs_Id.MoveNext
     
    Next
     
    Set rs = Nothing
    Set Rs_Id = Nothing
    Set ExcelSheet = Nothing
    DoCmd.SetWarnings True
    End Sub
    Si tu as des questions, n'hésite pas.
    En espérant t'avoir aidé, A+

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut
    merci de ton aide, je vais essayer de comprendre à tête reposée 8)
    et bonne année

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    C'est juste un exemple pour t'en inspirer : la requete SQL n'est pas nécessairement aussi "touffue".

    Pour info la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     mailer 1, 1, "" & Chemin & Nom & ".xls", Rs_Id(1), "", "", "", "", "", "", "", "", "", "Bilan mensuel des réclamations", SQl, , False
    fait appel à une fonction perso qui envoie un mail.

    A+

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 133
    Points : 83
    Points
    83
    Par défaut
    ok merci ca devient plus clair a présent, je rerépondrais quand je mettrais ca au point si j'ai un problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment éviter les doublons dans une ComboBox
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/07/2017, 16h03
  2. Comment éviter les doublons dans TComboBox ?
    Par petitclem dans le forum C++Builder
    Réponses: 3
    Dernier message: 28/04/2009, 14h49
  3. comment éviter les doublons en shell ?
    Par monsieur77 dans le forum Linux
    Réponses: 3
    Dernier message: 06/11/2007, 17h17
  4. [Upload] comment éviter les doublons en upload ?
    Par pilou1420 dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2007, 14h28
  5. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 12h18

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