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

[WORD2K3-ACC2K3] Publipostage : connexion a la base

4 réponses
Avatar
seb.....
Bonjour,

J'ai déja posté mon problème sur mpfa mais il reste sans réponses viables.

Je fais un publipostage word a partir d'access :

Mon probleme est le suivant :

La 1ere fois que je lance le publipostage (puis ensuite de manière
aléatoire), j'ai une boite de dialogue qui
me demande sélectionner la source.

Ce que je ne comprends pas, puisque la source est spécifié dans le code :

Sub MergeIt()

Dim objWord As Word.Document
Dim objworddocpath As String
Dim objwordMdbpath As String
objworddocpath = DLookup("[opt_chemin_doc_modele]", "tb_options",
"[opt_id]=1")
objwordMdbpath = DLookup("[opt_chemin_source_doc]", "tb_options",
"[opt_id]=1")

Set objWord = GetObject(objworddocpath & "\" & "Publipostage.doc",
"Word.Document")

' Rend Word visible important puisque la fusion se fait à l'écran.
objWord.Application.Visible = True

' Sélectionne la base de données Prestaprod.mdb comme source de données pour
la fusion
objWord.MailMerge.OpenDataSource _
Name:=objwordMdbpath & "\" & "Prestaprod.mdb", _
LinkToSource:=True, _
Connection:="REQUETE Req_Societe_et_contact", _
SQLStatement:="SELECT * FROM [Req_Societe_et_contact] WHERE " &
strFiltreallpub


' Exécution de la fusion.
objWord.MailMerge.Execute
Set objWord = Nothing

End Sub

Comment supprimer ce probleme qui me pose serieusement des soucis avec les
utilisateurs ?
quand la boite s'affiche, ils ne comprennent rien, selectionnent n'importe
quelle table, suppriment les champs de fusion... Bref c'est la cata.. ils me
font un merdier sans nom ..


Un GRAND merci à celui ou celle qui me trouvera la solution


seb

4 réponses

Avatar
Anacoluthe
Bonjour !

'seb.....' nous a écrit ...
Je fais un publipostage word a partir d'access :
La 1ere fois que je lance le publipostage (puis ensuite de manière
aléatoire), j'ai une boite de dialogue qui
me demande sélectionner la source.
Ce que je ne comprends pas, puisque la source est spécifié dans le code :
Comment supprimer ce probleme qui me pose serieusement des soucis avec les
utilisateurs ?
quand la boite s'affiche, ils ne comprennent rien, selectionnent n'importe
quelle table, suppriment les champs de fusion... Bref c'est la cata.. ils me
font un merdier sans nom ..


La réponse n'est probablement pas dans le code que vous nous donnez
mais dans la suite, notamment dans votre façon de sauvegarder le document.

Quand vous sauvegardez un document-principal de publipostage
il reste /lié/ à sa source de données qu'il va chercher dès que
vous l'ouvrez. S'il ne la trouve pas Word émet ce message
AVANT que vous spécifiez une autre source dans votre code...

La solution : enregistrez votre document de publipostage
comme un /document-Word-normal/ (1er bouton de la barre Publipostage)
après la fusion :
objWord.MailMerge.MainDocumentType = -1 ' = wdNotAMergeDocument

C'est mieux ?

Anacoluthe
« C’est par la séparation qu’on évalue la force des liens. »
- Gérard GEVRY

Avatar
seb.....
Bonjour,

J'ai essayé votre solution :

j'ai enregistré le document comme vous l'avez indiqué.
J'ai ajouté objWord.MailMerge.MainDocumentType = -1 ' = wdNotAMergeDocument
apres

Exécution de la fusion.
objWord.MailMerge.Execute


malheureusement cela ne fonctionne pas...

"Anacoluthe" a écrit dans le message de news:

Bonjour !

'seb.....' nous a écrit ...
Je fais un publipostage word a partir d'access :
La 1ere fois que je lance le publipostage (puis ensuite de manière
aléatoire), j'ai une boite de dialogue qui
me demande sélectionner la source.
Ce que je ne comprends pas, puisque la source est spécifié dans le code :
Comment supprimer ce probleme qui me pose serieusement des soucis avec
les utilisateurs ?
quand la boite s'affiche, ils ne comprennent rien, selectionnent
n'importe quelle table, suppriment les champs de fusion... Bref c'est la
cata.. ils me font un merdier sans nom ..


La réponse n'est probablement pas dans le code que vous nous donnez
mais dans la suite, notamment dans votre façon de sauvegarder le document.

Quand vous sauvegardez un document-principal de publipostage
il reste /lié/ à sa source de données qu'il va chercher dès que
vous l'ouvrez. S'il ne la trouve pas Word émet ce message
AVANT que vous spécifiez une autre source dans votre code...

La solution : enregistrez votre document de publipostage
comme un /document-Word-normal/ (1er bouton de la barre Publipostage)
après la fusion :
objWord.MailMerge.MainDocumentType = -1 ' = wdNotAMergeDocument

C'est mieux ?

Anacoluthe
« C’est par la séparation qu’on évalue la force des liens. »
- Gérard GEVRY



Avatar
Anacoluthe
Bonjour !

'seb.....' nous a écrit ...
J'ai essayé votre solution :
j'ai enregistré le document comme vous l'avez indiqué.
J'ai ajouté objWord.MailMerge.MainDocumentType = -1 ' = wdNotAMergeDocument
apres
Exécution de la fusion.
objWord.MailMerge.Execute
malheureusement cela ne fonctionne pas...


Qu'est-ce qui ne marche pas ? La fusion ? Ou la disparition de la boite
qui vous embête ?
Si lors du premier lancement de votre macro votre document est toujours
un document de publipostage lié à une source, il est normal de continuer
à recevoir l'alerte. Repensez toute votre macro : votre objWord doit
être un document normal, vous devez ajoutez dans votre macro le type
de document de publipostage (lettre, répertoire etc) que vous voulez en
faire, le lier à une source, fusionner, puis le remettre en document
normal si vous devez l'enregistrer.

Essayez de faire les choses à la main pour comprendre. Ouvrez votre
publipostage.doc : vous voyez l'alerte, faites-en un document normal,
réenregistrez-le, puis rouvrez-le : il n'y a plus d'alerte.
Est-ce plus clair ?

Anacoluthe
« C’est par la séparation qu’on évalue la force des liens. »
- Gérard GEVRY

Avatar
seb.....
Merci

C'est bon cela fonctionne.. j'ai refais les choses a la main, j'ai pigé le
fonctionnement.

Merci encore

Seb


"Anacoluthe" a écrit dans le message de news:
%
Bonjour !

'seb.....' nous a écrit ...
J'ai essayé votre solution :
j'ai enregistré le document comme vous l'avez indiqué.
J'ai ajouté objWord.MailMerge.MainDocumentType = -1 ' =
wdNotAMergeDocument
apres
Exécution de la fusion.
objWord.MailMerge.Execute
malheureusement cela ne fonctionne pas...


Qu'est-ce qui ne marche pas ? La fusion ? Ou la disparition de la boite
qui vous embête ?
Si lors du premier lancement de votre macro votre document est toujours
un document de publipostage lié à une source, il est normal de continuer
à recevoir l'alerte. Repensez toute votre macro : votre objWord doit
être un document normal, vous devez ajoutez dans votre macro le type
de document de publipostage (lettre, répertoire etc) que vous voulez en
faire, le lier à une source, fusionner, puis le remettre en document
normal si vous devez l'enregistrer.

Essayez de faire les choses à la main pour comprendre. Ouvrez votre
publipostage.doc : vous voyez l'alerte, faites-en un document normal,
réenregistrez-le, puis rouvrez-le : il n'y a plus d'alerte.
Est-ce plus clair ?

Anacoluthe
« C’est par la séparation qu’on évalue la force des liens. »
- Gérard GEVRY