Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Automation publipostage, de Word 2000 à Word 2002

4 réponses
Avatar
Evaro
Bonjour,

J'ai une petite procedure qui lance un document principal de fusion Word
en le reliant à une table ou à une requête et qui m'avait donné toute
satisfaction pendant longtemps.
Jusqu'au jour où certains postes sont passés à Word 2002.
Bon, déjà, après ouverture de Word, une boîte de dialogue demande à
l'utilisateur de "Sélectionner un Tableau".
Comme l'écrit l'ami Hervé Inisan dans son EXCELLENT Guide de Référence
Access 2002, "une nouvelle boîte de dialogue liste alors toutes les tables
et requêtes de votre base Access (ou presque)."
Pourquoi "presque" ?
Il me manque effectivement quelques requêtes sélection dans la liste... et
justement celle dont j'ai besoin.
J'ai essayé manuellement, en ouvrant le document principal, puis en
ouvrant la source de données...
Même chose...
J'ai bien remplacé la référence Microsoft Word 9.0 par Microsoft Word 10.0
Voici un petit bout de mon code, le paramètre strConnection contient des
trucs du genre "Table NomTable" ou "Query Nomrequête"

Sub Publipostage (strNomDocPrincipal as String, strConnection as string)

Dim wApp As Word.Application

Dim D1 As Word.Document, strNomBase As String

Set wApp = CreateObject("Word.Application")

wApp.Visible = True

Set D1 = wApp.Documents.Open(Application.CurrentProject.Path & "\" &
strNomDocPrincipal)

strNomBase = Application.CurrentDb.Name

D1.MailMerge.OpenDataSource Name:=strNomBase,
Connection:=strConnection

D1.MailMerge.Destination = wdSendToNewDocument
Set wApp = Nothing

Exit Sub



Y a-t-il un moyen de zapper cette boîte de dialogue ?

Dois-je vous préciser que les postes qui sont équipés de word 2000
fonctionnent sans problème ?

Pourquoi tant de haine de la part de Bill ?

Merci d'avance...


--
@ +
Etienne
Charte du forum: http://users.skynet.be/mpfa/charte.htm

4 réponses

Avatar
Raymond [mvp]
Bonsoir.

A mon avis il te manque le
D1.MailMerge.DataSource.QueryString = _
"SELECT * FROM [Clients] WHERE (([Client_Suivi_Mensuel] = -1))" & ""

ce qui évitera l'ouverture de la boite pour demander la requête.

Tu trouveras des idées sur la page:
http://access.seneque.free.fr/publipostage.htm Cas N° 2
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Evaro" a écrit dans le message de
news:
Bonjour,

J'ai une petite procedure qui lance un document principal de fusion Word
en le reliant à une table ou à une requête et qui m'avait donné toute
satisfaction pendant longtemps.
Jusqu'au jour où certains postes sont passés à Word 2002.
Bon, déjà, après ouverture de Word, une boîte de dialogue demande à
l'utilisateur de "Sélectionner un Tableau".
Comme l'écrit l'ami Hervé Inisan dans son EXCELLENT Guide de Référence
Access 2002, "une nouvelle boîte de dialogue liste alors toutes les tables
et requêtes de votre base Access (ou presque)."
Pourquoi "presque" ?
Il me manque effectivement quelques requêtes sélection dans la liste... et
justement celle dont j'ai besoin.
J'ai essayé manuellement, en ouvrant le document principal, puis en
ouvrant la source de données...
Même chose...
J'ai bien remplacé la référence Microsoft Word 9.0 par Microsoft Word 10.0
Voici un petit bout de mon code, le paramètre strConnection contient des
trucs du genre "Table NomTable" ou "Query Nomrequête"

Sub Publipostage (strNomDocPrincipal as String, strConnection as string)

Dim wApp As Word.Application

Dim D1 As Word.Document, strNomBase As String

Set wApp = CreateObject("Word.Application")

wApp.Visible = True

Set D1 = wApp.Documents.Open(Application.CurrentProject.Path & "" &
strNomDocPrincipal)

strNomBase = Application.CurrentDb.Name

D1.MailMerge.OpenDataSource Name:=strNomBase,
Connection:=strConnection

D1.MailMerge.Destination = wdSendToNewDocument
Set wApp = Nothing

Exit Sub



Y a-t-il un moyen de zapper cette boîte de dialogue ?

Dois-je vous préciser que les postes qui sont équipés de word 2000
fonctionnent sans problème ?

Pourquoi tant de haine de la part de Bill ?

Merci d'avance...


--
@ +
Etienne
Charte du forum: http://users.skynet.be/mpfa/charte.htm





Avatar
Evaro
Bonjour Raymond,
Merci pour ta réponse, avant de poster j'avais bien parcouru plusieurs
sites dont le tien, mais trop rapidement.
J'ai bien recopié le code de ton cas N° 2 mais ça ne résoud pas mon
problème car la boîte de dialogue s'ouvre sur la commande :
.ActiveDocument.MailMerge.OpenDataSource Name:=strAppname....
donc avant le :
.ActiveDocument.MailMerge.DataSource.QueryString = _

Par contre, effectivement, la boîte de dialogue ne s'ouvre pas lorsque je
renseigne le paramètre
sqlStatement:= "SELECT * From MaTable"
Mais alors le lien n'est pas établi entre le document principal et la
source de données (dans Word l'icône ajouter un champ de fusion n'est pas
disponible).
Merci
Etienne.


"Raymond [mvp]" a écrit dans le message de
news:
Bonsoir.

A mon avis il te manque le
D1.MailMerge.DataSource.QueryString = _
"SELECT * FROM [Clients] WHERE (([Client_Suivi_Mensuel] = -1))" & ""

ce qui évitera l'ouverture de la boite pour demander la requête.

Tu trouveras des idées sur la page:
http://access.seneque.free.fr/publipostage.htm Cas N° 2
--


Avatar
Raymond [mvp]
problème car la boîte de dialogue s'ouvre sur la commande :
.ActiveDocument.MailMerge.OpenDataSource Name:=strAppname....
tu as bien indiqué le SQLStatement:= "SELECT * FROM [Clients]",

SQLStatement1:="" ?

difficile à voir à distance.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Evaro" a écrit dans le message de
news:
Bonjour Raymond,
Merci pour ta réponse, avant de poster j'avais bien parcouru plusieurs
sites dont le tien, mais trop rapidement.
J'ai bien recopié le code de ton cas N° 2 mais ça ne résoud pas mon
problème car la boîte de dialogue s'ouvre sur la commande :
.ActiveDocument.MailMerge.OpenDataSource Name:=strAppname....
donc avant le :
.ActiveDocument.MailMerge.DataSource.QueryString = _

Par contre, effectivement, la boîte de dialogue ne s'ouvre pas lorsque je
renseigne le paramètre
sqlStatement:= "SELECT * From MaTable"
Mais alors le lien n'est pas établi entre le document principal et la
source de données (dans Word l'icône ajouter un champ de fusion n'est pas
disponible).
Merci
Etienne.


Avatar
Evaro
Bonjour à tous,
Ca y est j'ai trouvé...
C'est le Paramètre Connexion qui a changé, il est devenu hyper long et
complexe.
Pour le trouver il suffit d'enregistrer dans Word une macro qui ouvre une
source de données Access ;
Que n'y ai-je pensé plutôt !
Merci pour tout
Etienne.

"Raymond [mvp]" a écrit dans le message de
news:
problème car la boîte de dialogue s'ouvre sur la commande :
.ActiveDocument.MailMerge.OpenDataSource Name:=strAppname....
tu as bien indiqué le SQLStatement:= "SELECT * FROM [Clients]",

SQLStatement1:="" ?

difficile à voir à distance.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Evaro" a écrit dans le message de
news:
Bonjour Raymond,
Merci pour ta réponse, avant de poster j'avais bien parcouru plusieurs
sites dont le tien, mais trop rapidement.
J'ai bien recopié le code de ton cas N° 2 mais ça ne résoud pas mon
problème car la boîte de dialogue s'ouvre sur la commande :
.ActiveDocument.MailMerge.OpenDataSource Name:=strAppname....
donc avant le :
.ActiveDocument.MailMerge.DataSource.QueryString = _

Par contre, effectivement, la boîte de dialogue ne s'ouvre pas
lorsque je


renseigne le paramètre
sqlStatement:= "SELECT * From MaTable"
Mais alors le lien n'est pas établi entre le document principal et la
source de données (dans Word l'icône ajouter un champ de fusion n'est
pas


disponible).
Merci
Etienne.