VB6 et Publipostage.

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 - 13 août 2008 à 15:24
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 - 13 août 2008 à 17:30
Salut,
J' ai un problème avec ce code pour un publipostage WORD
depuis VB6 :


Sub MergeIt(sDoc As String, sSource As String, sQuery As String)
     
   Dim objWord As Word.Document
   Set objWord = GetObject(sDoc, "Word.Document")
         
    With objWord
       .Application.Visible = True
       .Application.DisplayAlerts = False
        
       .MailMerge.OpenDataSource _
        Name:=sSource, ConfirmConversions:=True, _
        LinkToSource:=True, _
        Connection:=sTable, _
        SQLStatement:=sQuery
   
       .MailMerge.Execute pause:=False 
       .MailMerge.Destination = wdSendToNewDocument
   '--
 
    End With
End Function


Exemple d' appel


Sub Publier()
    Dim xDoc As String
    Dim xBase As String
    Dim xQuery As String
   
     xBase = App.Path & "\Documents\Source\DB_EXPORT.MDB"
     xQuery="Select * from INSCRITS"
     xDoc = App.Path & "\Documents\INSCRITS.doc"
   
     Call MergeIt(xDoc, xBase,xQuery)
End Sub


Avec àa, j( ai deux souci:
1+ A l' ouverture du document Word j' ai message pour confirmer
l' exécution de la requete "Select * from INSCRITS"


2+ L' éxécution de la requete ouvre deux feuilles.
La principale (le modèle) avec la définition des champs.
Et celle qui sera publiée avec les valeurs des champs mis à jour.


Alors comment faire pour
1- Ne pas avoir de message de confirmation.
2- N' ouvrir que le doc à imprimer en définitive..


3- Question subsidiaire:Comment basculer automatiquement
vers le Mode publipostage à l' ouverture de la feuille principale.

Merci pour vos réponses..attendues.





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.

2 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
13 août 2008 à 16:19
Allô Papa Tango Charlie Répondez ! Nous vous cherchons

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
13 août 2008 à 17:30
Bon, avec ça :
Sub MergeIt(sDoc As String, sBase As String, sTable As String)
        Dim Wd As New Word.Application
        Dim wdMMail As Word.MailMerge
             
        Set Wd = CreateObject("Word.Application")
        Wd.Documents.Open sDoc
        Set wdMMail = Wd.ActiveDocument.MailMerge
        With Wd
            .ActiveWindow.Visible = True
            .DisplayAlerts = False
            wdMMail.OpenDataSource Name:=sBase, _
            Format:=wdOpenFormatEncodedText, ConfirmConversions:=True
         ' , ReadOnly:=False, LinkToSource:=True ', Encoding:=1252
            wdMMail.Destination = wdSendToNewDocument
            wdMMail.Execute pause:=False
          '
        'Impression
          ' .ActiveDocument.PrintOut
          ' .ActiveDocument.PrintPreview
       
        'Fermeture du document et de Word
      
        '  .ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges ' True
         ' .Quit
     End With
End Sub


 j' arrive déjà à éviter le message de confirmation de la requete.
Reste le problème de l' ouverture des deux feuilles
qu' il faudra éviter.
J' y travaille, en attendant un coup de main.

                
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
0
Rejoignez-nous