Bonjour a Tous,
Dans le cadre d'un publipostage initialisé depuis Access2010 (qui lance l'activeX Word)
J'ai dans un premier temps suivi une reponse donnée sur le site (dans un tuto de ClaudeLeloup)
qui propose (hors ce qui est commentaire) :
Aucun problème, cela fonctionne.
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 Dim Appwd As Word.Application 'Dim wdapp As Word.Document Set Appwd = CreateObject("Word.Application") With Appwd .Visible = True .Documents.Open yCheminApplication & "\" & pDoc .Activate ' Set wdapp = Appwd.Documents(1) On Error Resume Next ' With wdapp .Documents(1).MailMerge.OpenDataSource _ Name:=yCheminApplication & "\" & yNomApplication, _ LinkToSource:=True, _ Connection:=pQuery, _ SQLStatement:=pSelect .Documents(1).MailMerge.Execute .Documents(1).SaveAs2 pSave ' End With .Documents.Close SaveChanges:=wdDoNotSaveChanges, OriginalFormat:=wdPromptUser On Error GoTo 0 End With ' Set wdapp = Nothing Set Appwd = Nothing
Et j'ai voulu "ameliorer" un peu en ajoutant ce qui est en commentaire, c'est a dire un objet Word.document affecté à Appwd.documents(1), en supprimant evidemment les références .Documents(1) pour le MailMerge.
Et ca ne fonctionne plus, le SaveAs2 sauvegarde le fichier modèle de publipostage au lieu de sauvegarder le fichier fusionné.
Et deux instances restent ouvertes en fin de procédure (le modèle fusionné et une lettre-type).
Quelqu'un peut-il m'expliquer pourquoi ?
Jusqu'à maintenant je pensais que la syntaxe With .. end with n'était qu'un raccourci de présentation
et que la création d'un objet intermédiaire ne changeait pas le comportement des propriétés et methodes sous-jacentes.
Merci de votre aide.
Cordialement.
Partager