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 :

Souci de Publipostage


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut Souci de Publipostage
    Bonjour,
    dans un base que j'ai développé, j'ai mis en place un publipostage automatique qui se base sur une requête qui crée une table qui est la source de données de mon document de fusion.
    voici le code:
    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
     
    DoCmd.SetWarnings False
    Static ol As Outlook.Application
    Dim olmail As MailItem
    Dim Db As DAO.Database, RsParam As Recordset, RsFusion As Recordset
    Dim Tbl As DAO.TableDef
    Dim F As DAO.Field
    Set Db = CurrentDb
    Set RsParam = CurrentDb.OpenRecordset("PARAM", dbOpenTable)
    Do While Not RsParam.EOF
        Ope = RsParam![operation]
        Req = RsParam![requete]
        Tble = RsParam![Table]
        Fiche = RsParam![chemindoc]
        Path = RsParam![CheminSauv]
        MailPrinc = RsParam![DESTPRINC]
        MailSec = RsParam![DESTSEC]
        DoCmd.OpenQuery Req
        Lancer
        Set Db = CurrentDb
        Set Tbl = Db.TableDefs(Tble)
        For Each F In Tbl.Fields
            Set RsFusion = CurrentDb.OpenRecordset(Tble, dbOpenTable)
            If RsFusion.RecordCount <> 0 Then
            Do While Not RsFusion.EOF
            RsFusion.Edit
            If Not IsNumeric(RsFusion.Fields(F.Name)) Then
            If RsFusion.Fields(F.Name) = 0 Then
                RsFusion.Fields(F.Name) = "NON"
            ElseIf RsFusion.Fields(F.Name) = -1 Then
                RsFusion.Fields(F.Name) = "OUI"
            End If
            End If
            RsFusion.Update
            RsFusion.MoveNext
            Loop
            Else
                GoTo 1
            End If
        Next F
        RsFusion.Close
        Set Db = Nothing
        Set RsFusion = CurrentDb.OpenRecordset(Tble, dbOpenDynaset)
        Dim wdapp As Word.Application
        Do While Not RsFusion.EOF
        Dim i
        i = RsFusion.AbsolutePosition + 1
        Set wdapp = CreateObject("Word.application")
        With wdapp
            .Visible = True
            .Documents.Open Fiche, , True
            .ActiveDocument.MailMerge.DataSource.FirstRecord = i
            .ActiveDocument.MailMerge.DataSource.LastRecord = i
            .ActiveDocument.MailMerge.Execute
            .ActiveDocument.SaveAs Path & Ope & "_" & RsFusion![SOCIETE] & "_" & Format(Date, "dd_mm_yyyy")
        End With
        For Each Doc In wdapp.Documents
            Doc.Close savechanges:=wdDoNotSaveChanges
        Next Doc
        Set wdapp = Nothing
        RsFusion.MoveNext
        Loop
        Set ol = New Outlook.Application
        Set olmail = ol.CreateItem(olMailItem)
        With olmail
            .To = MailPrinc
            .CC = MailSec
            .Subject = "Fusion_" & Ope & "_du_" & Format(Date, "dd_mm_yyyy")
            .Body = "Sur la Mission " & Ope & ", " & "vous avez " & RsFusion.RecordCount & " Projet(s) fusionné(s)" & vbCrLf & "Vous pouvez les récupérer ici :" & vbCrLf & Path
            .Send
        End With
        RsFusion.Close
        Set Db = Nothing
    1 RsParam.MoveNext
    Loop
    DoCmd.SetWarnings True
    DoCmd.Quit
    dans ce code, la table PARAM est une table de paramètre ou je stocke, le document de fucion, le chemin de sauvegarde est les mails des pesonnes à qui un mail doit être envoyé une fois la fusion exécutée.
    ce code est dupliqué sur plusieurs bases.

    mon problème est le suivant: sur une base, lorsque la comme Merge.execute se lance, j'ai l'erreur 5631 en pièce jointe.

    Est-ce que vous avez déjà eu ce genre d'erreur ?
    j'ai cherché une solution à ce problème sur les différents posts sur le publipostage mais rien.


    mon second souci,
    qu'elle est la commande avec laquelle le pourrais savoir qu'elle est le document actif depuis mon code VBA ?


    Merci pour votre aide
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Pour la 1ère question : le message est clair, il n'y a pas d'enregistrements trouvés. Ta source de données contient-elle des enregistrements ?

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

Discussions similaires

  1. soucis d'enoi de courrier electronique via publipostage
    Par odepo dans le forum Microsoft Dynamics CRM
    Réponses: 1
    Dernier message: 04/07/2013, 15h09
  2. Souci sur publipostage et recordset
    Par zougna dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/05/2007, 09h18
  3. [File et Directory ListBox] Soucis de filtre
    Par Mercilius dans le forum Composants VCL
    Réponses: 8
    Dernier message: 04/04/2003, 17h17
  4. Réponses: 4
    Dernier message: 16/02/2003, 13h16
  5. Réponses: 2
    Dernier message: 03/10/2002, 18h24

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