Bonjour,
Je commande depuis mon application sous VB le publipostage de WORD.
En effet, je crée depuis VB le document principal de Word (le doc word existe déjà mais n'est pas préprogrammé pour faire le publipostage), puis je fais un opendatabase sur un fichier texte (.txt) qui contient les données que je veux fusionner.
Voici une partie du code / Fonction qui gère l'impression.
Mon document texte est généré avec un n° aléatoire à la fin et est supprimé dès que la fusion est terminé.
Le code fonctionne à merveille mais j'ai un gros bug dans certains cas.
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 Sub Impression_Word(Num_txt As Integer, Fichier_Reponse As String) Dim appWord As Word.Application Dim wdType As Word.Document 'Lettre Type Dim wdResultat As Word.Document 'Doc résultat de la fusion Set wdType = Nothing Set wdResultat = Nothing 'Démarrer Word Set appWord = CreateObject("Word.application") appWord.Visible = True 'ouvrir le document Set wdType = appWord.Documents.Open(App.Path + "/data/courriers/" + Fichier_Reponse) With wdType.MailMerge .MainDocumentType = wdFormLetters .OpenDataSource App.Path & "/Data/Resultat_SQL" & Num_txt & ".txt" .Destination = wdSendToNewDocument .Execute pause:=True End With 'Fermeture du doc type wdType.Close wdDoNotSaveChanges 'Récup du document actif = doc de fusion Set wdResultat = appWord.ActiveDocument appWord.Application.WindowState = wdWindowStateMaximize appWord.Visible = True 'fermer et libérer les objets Set appWord = Nothing End Sub
Si dans le fichier texte il y a un champ contenant des "" comme par exemple dans une adresse (ex : Résidence "Les Tilleuls"), la fusion ne se termine pas sans mettre de message d'erreur.
Cependant lorsque je fais moi même les manipulations pour créer le document principal, et trouver la source de données, il n'y a pas de soucis tout fonctionne. En faisant des tests, je me suis apperçu que le fait de cocher la case : "Choisir l'importation" dans le menu " Ouvrir la base de données" dans le publipostage sous Word, permet de ne pas avoir de problème.
Hors dès que je teste en décochant cette case, j'ai le problème cité plus haut.
J'ai beau avoir chercher, je ne trouve pas le code à mettre dans VB qui correspondrait à cocher la case "Choisir l'importation" comme lorsque je le fais manuellement.
Si quelqu'un pouvait m'éclairer sur ce point dont je ne trouve aucune solution.
Je vous remercie par avance.
Partager