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 :

Publipostage sous Access 97 (ouverture source de données de fusion)


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Publipostage sous Access 97 (ouverture source de données de fusion)
    Bonjour

    Je vous explique mon petit problème concernant le publipostage sous Access 97.



    Mon code dans Access est le suivant :

    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
            Dim Fichier_BaseDeDonnees As String
            Dim Lg_Fichier_BaseDeDonnees As Long
            Dim Repertoire_BaseDeDonnees As String
            Dim objWord As Object
            Dim qdfReport As QueryDef
            Dim NomRequete As String
            Dim Parametres_Relance As String
     
            Fichier_BaseDeDonnees = Application.CurrentDb.Name
            Lg_Fichier_BaseDeDonnees = Len(Dir(Application.CurrentDb.Name))
            Repertoire_BaseDeDonnees = Left(Application.CurrentDb.Name, Len(Application.CurrentDb.Name) - Lg_Fichier_BaseDeDonnees)
     
            ' Exportation de la requête vers le fichier Relance.txt
            NomRequete = "_TMP_Relance_" & Format(Now, "yyyymmddHHmmss")
                    Set qdfReport = CurrentDb.CreateQueryDef(NomRequete, _
                                                                             "SELECT * " & _
                                                                            "FROM PARTICIPATION " & _
                                                                            "WHERE ID_PARTICIPATION IN (" & Parametres_Relance & ");")
                    DoCmd.TransferText acExportMerge, , qdfReport.Name, Repertoire_BaseDeDonnees & "MODELES\Souhait\Relance\Relance.txt", True
             CurrentDb.QueryDefs.Delete (NomRequete)
     
            ' Publipostage : Lettre de Relance
            ' Ouverture du fichier publipostage
            Set objWord = GetObject(Repertoire_BaseDeDonnees & "MODELES\Souhait\Relance\Lettre Relance.doc")        
            ' Rend visible l'application Word
            objWord.Application.Visible = True
            ' Ouverture de la source de données de fusion                                                                        
            objWord.MailMerge.OpenDataSource Name:=Repertoire_BaseDeDonnees & "MODELES\Souhait\Relance\Relance.txt"        
            ' Exécution de la fusion        
            objWord.MailMerge.Execute
            ' Suppression des infos de fusion du document
            objWord.MailMerge.MainDocumentType = -1                                                                        
            ' Fermeture du fichier publipostage
            objWord.Close                                                                                                
            Set objWord = Nothing


    Précision concernant le fichier word "Lettre Relance.doc" (Word 97):

    Ce fichier n'est pas enregistré comme un document principal de fusion : c'est à dire qu'il n'a pas de
    source de données qui lui est associée.
    Ceci est fait pour que je puisse installer le programme sur différents postes sans modifier à chaque
    fois le chemin d'accès de la source de données de mes fichiers word de publipostage.
    Si je garde les sources de données de mes fichiers word de publipostage et que j'essaie d'ouvrir ces
    fichiers dans Access (avec l'instruction GetObject), il va me demander de rechercher manuellement le
    fichier de source de données.



    Problème :

    Le code marche mais de temps en temps (lorsque le fichier source de données est trop gros), l'instruction
    objWord.MailMerge.Execute
    renvoit l'erreur suivante :
    Erreur d'exécution '4605':
    Cette méthode ou propriété n'est pas disponible car le document principal de fusion courant requiert
    une source de données.

    J'ai l'impression que l'instruction
    objWord.MailMerge.OpenDataSource
    ne charge pas le fichier source de données avant que l'instruction suivante s'exécute
    J'ai essayé de mettre une pause de 5 sec entre les 2 instructions et dans ce cas, ça marche



    Question :

    Comment dois-je faire pour que l'instruction
    objWord.MailMerge.Execute
    ne s'execute pas avant que le fichier source ne soit chargé ?
    (Sans utiliser une pause car c'est un peu aléatoire comme méthode)

    Merci pour votre aide.
    A bientôt.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour

    J'ai trouvé la solution donc je vous l'expose au cas où ça intéresse quelqu'un.

    En faite en rajoutant des paramètres à la méthode OpenDataSource le publipostage se passe correctement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    objWord.MailMerge.OpenDataSource Name:=Repertoire_BaseDeDonnees & "MODELES\" & Dossier_Type_Stage & "\Souhait\Relance\Relance.txt", _
                                     LinkToSource:=True, Revert:=False, Format:=0, _
                                     Connection:="DSN=Text Files;DBQ=" & Repertoire_BaseDeDonnees & "MODELES\" & Dossier_Type_Stage & "\Souhait\Relance", _
                                     SQLStatement:="SELECT * FROM Relance.txt"

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

Discussions similaires

  1. [WD-2003] Publipostage avec base de données sous Access
    Par liop49 dans le forum Word
    Réponses: 7
    Dernier message: 11/10/2012, 18h34
  2. [AC-2010] Formulaire access à l'ouverture affiche déjà données
    Par yepos dans le forum IHM
    Réponses: 2
    Dernier message: 07/06/2012, 17h26
  3. [WD-2003] Publipostage Word / Access avec plusieurs sources de données
    Par Benmarcel78 dans le forum Word
    Réponses: 3
    Dernier message: 29/11/2010, 19h30
  4. Compteur sous ACCESS pour "N" type de données
    Par Conny dans le forum VBA Access
    Réponses: 8
    Dernier message: 15/06/2009, 15h06
  5. Ouverture source de données publipostage word
    Par atom41 dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/01/2008, 10h22

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