Ouvrir doc Word publipostage depuis Access

iffig61
Messages postés
14
Date d'inscription
samedi 30 décembre 2006
Statut
Membre
Dernière intervention
20 juillet 2014
- 13 déc. 2008 à 11:10
antunes75
Messages postés
5
Date d'inscription
mardi 20 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010
- 22 juil. 2010 à 14:50
Bonjour,

Quand j'exécute un code VB pour ouvrir un document Word en publipostage, systématiquement le fichier s'ouvre en mode normal et le message suivant s'affiche :
Cette méthode ou propriété n'est pas disponible car le document n'est pas un document principal de fusion !!!

10 réponses

cs_thierry la fronde
Messages postés
351
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
12 août 2009

14 déc. 2008 à 11:38
Bonjour,

Et oui, le document de fusion n'est pas un document normal, c'est un document principal qui est lié à une source de données. Je te conseillerais plutôt de faire d'abord ton publipostage et d'enregistrer ton document principal en tant que modèle. Puis ton code VB avec ouvrir le modèle. Perso je ne l'ai jamais fait, mais cela doit être  possible.
Autre solution, 1- Ouvre Word 2- Lance l'enregistreur de macro (outils / Macro / Nouvelle macro) 3-Crée ton publipostage. 4-Ferme l'enregisteur 5 - Récupère ton code pour l'utiliser dans VB Access (avec les modif qui vont bien)

thierry la fronde
0
falstuff
Messages postés
40
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
26 avril 2012
2
14 déc. 2008 à 21:01
Salut, voici la méthode que j'utilise pour réaliser un publipostage entre access et word :
1 - Exporter les données dans un fichier texte
ex : DoCmd.TransferText acExportDelim, , "ExportPublipostage", "C:\Temp.txt", True

2 - Créer un fichier word en tant que modele et créer la source du publipostage vers le fichier texte précédemment créer. Enregistrer le modele (ex : C:\Test.Dot)

3 - Pour réaliser de maniere automatique la fusion a partir d'access voici le code :

    Dim FichierWord, a As String
    Dim Feuil As Object
    FichierWord = "C:\Test.Dot"
    Set Feuil = GetObject(FichierWord)
    Feuil.Parent.Application.Visible = True
    Feuil.Application.WindowState = 1
    Feuil.Application.Documents.Open FileName:=FichierWord, ConfirmConversions:=False, ReadOnly _
    :=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
    :="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
    , Format:=0
    With Feuil.Application.ActiveDocument.MailMerge
        .Destination = 0
        .MailAsAttachment = False
        .MailAddressFieldName = ""
        .MailSubject = ""
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = 1
            .LastRecord = -16
        End With
        .Execute Pause:=True
    End With


    Feuil.Application.ActiveDocument.saved = True
    Feuil.Application.ActiveWindow.WindowState = 2
    Feuil.Application.ActiveDocument.saved = True
    Feuil.Application.ActiveDocument.Close
    'Feuil.Application.Quit
    Set Feuil = Nothing

Bonne continuation....
0
antunes75
Messages postés
5
Date d'inscription
mardi 20 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010

20 juil. 2010 à 14:58
@falstuff : Je n'ai pas bien compris ton astuce ou alors je n'ai pas su la mettre en place :s

quand je veux spécifier la source ''Temp.txt'' word me le refuse puisque la source ne contient pas de données ..
0
falstuff
Messages postés
40
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
26 avril 2012
2
21 juil. 2010 à 10:42
Bonjour Antunes75,
Ton probleme viens de la ligne de mon code :
DoCmd.TransferText acExportDelim, , "ExportPublipostage", "C:\Temp.txt", True

Cette ligne export en fichier texte le contenu d'une requete ou d'une table (ici nommé ExportPublipostage). le dernier parametre (true) permet d'exporter les nom des champs que tu retrouveras dans les champs de fusion sous Word.

Il faut d'abord que tu crée ton fichier Texte en executant 1 fois le traitement de maniere à ce que le fichier "temp.txt" existe. Aprés il faut que tu ouvres le modele word et que tu lui rattache ce fichier texte en tant que source de données.

Avec le code que j'ai mis, tu devrais pas avoir trop de probleme à le faire fonctionner, c'est un traitement que j'utilise beaucoup dans mes developpement Access et DotNet.

Restant à ta disposition si besoin

Bon courage
@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
antunes75
Messages postés
5
Date d'inscription
mardi 20 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010

21 juil. 2010 à 14:31
Merci pour ta réponse rapide !

J'ai donc essayé avec la première ligne de code ( avec et sans le True ) pour créer le fichier mais quand je clique j'ai une erreur d'exécution '3011' qui me dit :
0
falstuff
Messages postés
40
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
26 avril 2012
2
22 juil. 2010 à 01:06
re,

Ton probleme viens toujours de la ligne :
DoCmd.TransferText acExportDelim, , "ExportPublipostage", "C:\Temp.txt", True

"ExportPublipostage" est le nom de ma requete qui est transféré dans le fichier "Temp.txt". C'est à dire que c'est cette requete qui contient les valeurs qui vont etre exporter dans word.
ExportPublipostage ==> Temp.txt ==> Fichier word (ici "C:\Test.Dot")

Tu peux utiliser une requete ou une table, mais faut que le nom de ta requete (ou table) soit le meme dans la fonction donc tu peux modifier la fonction suivante pour le parametre "exportpublipostage" en le remplacant par ton nom de table ou de requete.

DoCmd.TransferText acExportDelim, , [Nom de ta table ou de ta requete], "C:\Temp.txt", True

N'hésite pas si tu as des soucis

@++
0
antunes75
Messages postés
5
Date d'inscription
mardi 20 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010

22 juil. 2010 à 12:19
Bonjour de nouveau ! encore un Soucis :D

alors j'ai donc sélectionner la requête en question et j'ai une nouvelle erreur :




Encore merci pour ton aide !!
0
falstuff
Messages postés
40
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
26 avril 2012
2
22 juil. 2010 à 14:13
Salut,

Je ne vois pas l'image que tu as joint pour l'erreur.
Si tu peux la remettre ou recopier le message d'erreur

@++
0
antunes75
Messages postés
5
Date d'inscription
mardi 20 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010

22 juil. 2010 à 14:49
0
antunes75
Messages postés
5
Date d'inscription
mardi 20 juillet 2010
Statut
Membre
Dernière intervention
22 juillet 2010

22 juil. 2010 à 14:50
0