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 vers Word ActiveDocument.MailMerge [AC-2013]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 31
    Par défaut Publipostage vers Word ActiveDocument.MailMerge
    Bonjour,

    Je cherche à lier un document Word en publipostage en suivant les divers FAQ et conseils pris par ci par là, mais je bute sur l'ouverture de ma base.

    Je vous donne 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
    Set wdapp = CreateObject("Word.application")
    With wdapp
     
     
           .Visible = True
     
          ' Ouvrir le document
          .Documents.Open "monfichier.docx"
          .ActiveDocument.MailMerge.OpenDataSource _
                Name:="\\Serv-pc\bdd\Engine\Engine 1.1_PRINCIPAL.accdb", _
                LinkToSource:=True, _
                Connection:="TABLE CONTENTIEUX", _
                SQLStatement:="SELECT * FROM [CONTENTIEUX] WHERE ([ID]=Me.ID)"
           .ActiveDocument.MailMerge.Execute
           .ActiveDocument.SaveAs2 CheminDocPerso
           .Documents.Close
      End With
      ' Fermer et libérer les objets
      wdapp.Quit
      Set wdapp = Nothing
      ' Ouvrir le doc perso
      Shell "C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.EXE " & CheminDocPerso, vbNormalFocus
    Mon document Word s'ouvre et me signale que la base "\\Serv-pc\bdd\Engine.mdb" n'existe pas. Certes elle n'existe pas... et je n'ai pas codé ça non plus... je comprend pas bien pourquoi ça me fait ça.
    Une fenetre ensuite s'ouvre pour sélectionner la base dans le bon répertoire mais la liste est vide. Il faut que je tape entrée dans la sélection du format pour que les fichiers apparaissent.
    Une fois sélectionné, cela fonctionne, même si ma condition where ne fonctionne pas non plus semble-t-il mais je me pencherai la dessus par la suite.

    Quelqu'un peu-t-il m'éclairer ?

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    C'est probablement le nom de ta BdD qui est en cause « Engine 1.1_PRINCIPAL.accdb ».

    Des espaces, des lettres accentuées et des caractères spéciaux dans les noms finissent toujours par empoisonner la vie.


    Pour des conventions de nommage, tu peux t'inspirer de cet article Descriptif des conventions typographiques du code Visual Basic de Jean-Philippe AMBROSINO.

    Pour un exemple de synchronisation Access/Word, tu peux aussi consulter : http://claudeleloup.developpez.com/t...cuments-types/

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 31
    Par défaut
    Bonjour,

    Il semble que le nom ne soit pas le problème. J'ai tout simplifié mais cela ne change rien. Ma base s'appelle db.accdb.

    Le bug vient en fait de mon Where... Avec le code ci-dessous, aucun problème, mais le résultat n'est pas celui recherché.

    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
    Set wdapp = CreateObject("Word.application")
    With wdapp
     
     
           .Visible = True
     
          ' Ouvrir le document
          .Documents.Open "fichier.docx"
          .ActiveDocument.MailMerge.OpenDataSource _
                Name:="\\Serv-pc\bdd\Engine\db.accdb", _
                LinkToSource:=True, _
                Connection:="Table CONTENTIEUX", _
                SQLStatement:="SELECT * FROM [CONTENTIEUX]"
           .ActiveDocument.MailMerge.Execute
           .ActiveDocument.SaveAs2 CheminDocPerso
           .Documents.Close
      End With
    Si je suis ton tuto, je vois que tu créés la table tParametres pour passer les infos voulu au publipostage. Il ne te reste qu'une ligne et donc pas de soucis avec un Where. De mon coté toutes les infos du publipostage sont sur la même table, un Where me semble donc plus justifié. Mais ce n'est peut-etre pas possible de l'utiliser ici.

    Bon je vais fouiller pour trouver des exemples avec Where ...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faut sortir la variable de la chaine :

    A tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [CONTENTIEUX] WHERE ([ID]=" & Me.ID & ")"
    Philippe

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 31
    Par défaut
    Pour sur !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [CONTENTIEUX] WHERE ID=" & Me.ID & ""
    Faut avouer que l'erreur que cela provoque à de quoi décontenancer. Bon faut dire il m'en faut peu aussi :p

    Merci pour tout en tout cas !

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

Discussions similaires

  1. [XL-2003] Erreur lors du publipostage vers word
    Par jacda dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2010, 21h03
  2. création du code vba de publipostage vers word
    Par marrek209 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/11/2009, 12h01
  3. Publipostage vers Word
    Par surrounded dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/11/2007, 14h51
  4. Réponses: 3
    Dernier message: 12/09/2006, 05h54
  5. Réponses: 3
    Dernier message: 21/08/2006, 13h03

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