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 :

[DDE]Publipostage de Access à Word


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Points : 5
    Points
    5
    Par défaut [DDE]Publipostage de Access à Word
    Bonjour,
    J'ai récupéré le code VBa dans la faq, à l'intitulé :
    "Publipostage de données Access vers Word"
    J'ai les problèmes suivants au lancement :
    Bug à la ligne :
    ActiveDocument.MailMerge.Execute
    (car le document n'est pas document de fusion)
    alors que je l'ai préparé avant sur Word..(version 2003)
    et ensuite lorsque je vérifie sur Word, il est en lecture seule, transformé en document simple avec le nom des champs figé.

    Lorsque je prépare mon mailing sur word .
    avec une requete ou bien une table ?
    quel choix faire dans les propositions de type :
    odbc, ole, etc??
    Merci d'avance..

    Sylvere

  2. #2
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 64
    Points
    64
    Par défaut
    j'ai le meme probleme et je ne trouve pas la solution

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut pb de publipostage de Access à Word
    Bonsoir à tous

    Je vous livre ma méthode qui a le mérite de fonctionner. Il faut faire le document pincipale dans word.
    Outils/lettres et publipostage/fusion et publipostage
    A l'étape 3 on va chercher notre table dans access. Privilégiez les tables. Bien qu'il soit possible de fusionner à partir d'une requête sans clause "where"
    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
     
    Private Sub cmdPub2007_Click()
    On Error GoTo Err_cmdPub2007_Click
    'On met à jour la table acquéreursPub par les requêtes suppression et ajout. 
    'Cette partie est inutile si vous partez directement d'une table
    DoCmd.OpenQuery "qrySupTblVoeuxAcq", acViewNormal, acEdit  'Voir ci-dessus
        DoCmd.OpenQuery "qryAjoutblVoeuxacq", acViewNormal, acEdit 'voir ci-dessus
     
    ' Chemin d'accès au document Word de publipostage
    ' Modifiez ce chemin en fonction de votre configuration
    Const DOC_WORD = "C:\Bases francis\VoeuxAcquereurs2007.doc"
     
    ' Variable pour gérer l'objet Word
    Dim wdApp As Word.Application
     
    ' Passer à la partie Publipostage
    Set wdApp = New Word.Application
    With wdApp
        ' Word est visible pendant les tests
        .Visible = True
     
        ' Ouvrir la lettre type
        .Documents.Open DOC_WORD
     
        ' Lier la lettre type à la source de données Access
        .ActiveDocument.MailMerge.OpenDataSource _
            Name:=CurrentProject.FullName, _
            SQLStatement:="SELECT * FROM [tblVoeuxacq]"
     
        ' La fusion doit se faire dans un nouveau document
        .ActiveDocument.MailMerge.Destination = wdSendToNewDocument
     
        ' Exécuter la fusion
        .ActiveDocument.MailMerge.Execute
        ' Redonner le focus à la lettre type et fermer sans enregistrer
        .Documents.Open DOC_WORD
        .ActiveDocument.Close wdDoNotSaveChanges
    End With
     
    Set wdApp = Nothing
    MsgBox "Publipostage terminé !", vbInformation, "     francishop vous remercie"
     
    Exit_cmdPub2007_Click:
        Exit Sub
     
    Err_cmdPub2007_Click:
        MsgBox err.Description
        Resume Exit_cmdPub2007_Click
    End Sub
    Vous notez qu'il apparaîtra a vos yeus émerveillés un document dépourvu de champs de fusion. En effet, il s'agit du document fusionné. Ainsi on est sûr que l'utilisateur final ne modifiera pas notre document type.
    Pour ouvrir ce dernier :
    Application.FollowHyperlink "C:\Bases francis\VoeuxAcquereurs2007.doc"

    Il peut arriver qu'on arrive pas à se connecter depuis word à access. Surtout si on vient d'aller voir un module. Fermez votre base access.
    Si après le message qu'il me plaît d'envoyer à l'utilisateur vous ne voyez pas de document word, réduisez votre fenêtre. Word est sans doute tout simplement derrière votre base. C'est un farceur.

    Cordialement

    Ps. Il est amusant d'exposer sa "science" alors qu'il y a à peine 4 heures j'ai demandé à peu près la même chose sur ce forum pour publisher.
    Publisher - Word
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  4. #4
    Invité
    Invité(e)
    Par défaut
    Excellent enfin quelque chose de clair! en tout cas ça a résolu mon problème principal. J'ai une autre question: est-il possible d'exécuter tout ça en arriere plan, en gros sans que l'on voye la fenetre word? si oui comment? si non comment faire?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut Publipostage de Access à Word
    Bonjour à tous,

    C'est formidable l'optimisme de notre ami Benzin69 : "Si c'est pas possible, dites moi comment y arriver"!.
    On peut se demander pourquoi faire une opération de publipostage word-acces si ce dernier ne doit pas être vu?
    Il semble judicieux en cette hypothèse de procéder à ce publipostage seulement depuis word.
    Quoi qu'il en soit, si tu veux occulter le résultat de l'opération à l'utilisateur (Mais bon sang pourquoi?.. Une blague?) Tu as une partie de la réponse en clair dans le code communiqué.
    Pour le reste, je t'invite à ouvrir un module, en haut à droite "Poser une question" tu tapes WORD
    Bon code.

    Cordialement
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  6. #6
    Invité
    Invité(e)
    Par défaut
    je me suis mal exprimé mais bon tant pis,je voulais dire que si ce n'était pas possible avec la solution proposée , y aurait-il une autre méthode qui le permette. Ensuite je désire masquer cela non pas pour faire une blague mais parce que je développe une application pour mon entreprise et les utilisateurs finaux n'auront pas à voir le document word en question

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    D'accord. Mais il faut reconnaître qu'on ne pouvait pas laisser passer. L'occasion était trop belle de te chambrer.
    Bien sur qu'il est possible de masquer word

    .visible = false
    Et aprés n'oublie pas de fermer ton document.
    Ton utilisateur peut bien voir ton document. Comme je l'indiquais hier, il n'y a aucun champ de fusion porté à ses talents de compositeur.

    Cordialement
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    franchement j'ai du mal à vous suivre sur comment vous faites.

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,
    twentyfour, shématise ce que tu fais. Explique déjà en partant de word.
    Si tu arrives à obtenir un résultat concluant dans word, dans ce cas explique dans access.
    Cordialement
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  10. #10
    Invité
    Invité(e)
    Par défaut
    la commande .visible=false ne suffit pas, word s'ouvre quand même dans la seconde partie du publipostage... vous avez une idée?

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    C'est terrible. J'ai l'impression que ça ne peut que servir à rien.
    Pourquoi faire un publipostage si on ne le voit pas. Il pourrait y avoir une seule explication : On imprime!
    En tous les cas ça me fais chercher. Et voilà le résultat :

    wdApp.Quit wdDoNotSaveChanges
    Set wdApp = Nothing

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Points : 22
    Points
    22
    Par défaut :help:
    Bonjour,

    Voila une semaine que j'ecume les forums à la recherche d'UNE indication, j'espère donc que vous pourrez m'aider.

    Question publipostage ca roule, mais mon soucis actuellement cerait de publiposter UN enregistrement à la fois.

    Pour cela j'ai créer un formulaire qui affiche un enregistrement à la fois de ma table, et un bouton qui lance le publipostage, mais bien sur des que j'active le bouton, je me retrouve a publiposter l'ensemble de mes enregistrements .

  13. #13
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    mais mon soucis actuellement cerait de publiposter UN enregistrement à la fois
    Peut-on encore parler de publipostage alors ?

    Si tu déclenches l'impression depuis un formulaire, le plus simple est d'insérer les champs du formulaire dans le document Word en utilisant des signets.

    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
    Function Insertion()
        On Error Resume Next
        Dim W_App As New Word.Application
        With W_App
            .Visible = True
            .Documents.Open ("doc1.doc")
            .ActiveDocument.Bookmarks("Ville").Select
            .Selection.Text = Me.Texte1
            .ActiveDocument.Bookmarks("Adresse").Select
            .Selection.Text = Me.Texte3
            .ActiveDocument.SaveAs ("Doc2.Doc")
            .Quit
        End With
        Set W_App = Nothing
    End Function
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Ayé ca marche, avant j'avait cree un modulé appelé par un bouton, la j'ai tout mis dans l'execution du bouton, et j'ai rajouté une clause WHERE dans la requete SQLSTATEMENT, portant sur la valeur de l'id affichée .

    Le problème c'est que ca ne marche que pour les premier enregistrements, mais pour les derniers ca publiposte n'importe lequel en m'affichant pourtant l'id correct

    j'essaie d'un publiposter plein pour trouver d'où peut venir l'erreur, mais ca me parait louche

  15. #15
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour;

    Part d'une table et tu n'auras plus de soucis. C'est du solide. Dans ton cas un seul enregistrement.
    Lors de mon post du 9 Janvier j'indiquais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'On met à jour la table acquéreursPub par les requêtes suppression et ajout. 
    'Cette partie est inutile si vous partez directement d'une table
    DoCmd.OpenQuery "qrySupTblVoeuxAcq", acViewNormal, acEdit  'Voir ci-dessus
        DoCmd.OpenQuery "qryAjoutblVoeuxacq", acViewNormal, acEdit 'voir ci-dessus
    Dans un premier temps tu "vides" ta table puis tu la "remplis" à l'aide de requêtes idoines. Word n'a plus qu'à se servir.

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2007
    Messages : 27
    Points : 22
    Points
    22
    Par défaut
    Ayé j'ai trouve, il faut juste eviter de mettre le code dans un module, et le mettre directement dans le code du bouton, et vérifier le nom des tables utilisées

Discussions similaires

  1. [AC-2007] Problème de publipostage entre Access & Word via VBA
    Par sebaci972 dans le forum VBA Access
    Réponses: 0
    Dernier message: 12/05/2009, 20h10
  2. Publipostage Access Word
    Par Frenchguy dans le forum Access
    Réponses: 2
    Dernier message: 30/06/2007, 23h05
  3. Publipostage Access word (donnée requête)
    Par willytito dans le forum Access
    Réponses: 3
    Dernier message: 14/03/2007, 13h29
  4. publipostage access word
    Par imeys dans le forum Access
    Réponses: 5
    Dernier message: 14/02/2007, 10h26
  5. dde access-word
    Par en_gel_ho dans le forum Access
    Réponses: 2
    Dernier message: 16/05/2006, 09h27

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