Publipostage par VBA, Champ de fusion comme résultat d'une instruction IF

Le
thierry.bonin
Bonjour à tous,

Je vous soumets un problème auquel je n'arrive pas à trouver de
solution.

Je tente de créer un document de fusion Word intégralement par VBA
depuis Access (version 97) et notamment de construire l'expression de
publipostage et de l'injecter dans le document Word avant d'exécuter
la fusion (jusque là pas de problème).

Là où ca commence à coincer c'est que j'ai besoin d'utiliser des
expressions SI dont le résultat retourne des valeurs de champs de
fusion (par ex : {SI{CHAMPFUSION x} = "toto" "{CHAMPFUSION y}" ""}.

Si il est "facile" d'obtenir ce type d'expression manuellement dans
Word, son équivalent en VBA (instruction AddIf) ne permet, par contre,
que de déclarer des résultats statiques de type texte.

J'ai vu qu'une solution pourrait être de faire maîtriser totalement le
publipostage par access (exemple donné par Raymond sur son site) en
utilisant l'instruction VBA Word InsertAfter pour les versions 2000 et
2002. Sauf erreur, je n'ai pas l'impression que cela marche en 97

Quelqu'un aurait-il une idée ?

Merci à tous

Thierry
Vos réponses
Trier par : date / pertinence
Raymond
Le #4290581
Bonsoir.

Je vois que ta question n'inspire pas grand monde.

utilisant l'instruction VBA Word InsertAfter pour les versions 2000 et
2002. Sauf erreur, je n'ai pas l'impression que cela marche en 97...


Je ne voudrais pas trop m'avancer, mais le support serveur OLE automation a
été inclus dans la version 95. Je ne serais donc pas étonné que l'automation
publipostage 97 soit une réalité. N'utilisant plus 97 depuis des années, je
ne peux pas te le confirmer, mais ce que tu peux faire c'est déjà prendre le
code de mon modèle et voir ce qui se passe. Ensuite il y aura bien une âme
charitable qui va faire la modif pour 97, s'il y a des fonctions non
supportées.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Thierry Bonin" news:
Bonjour à tous,

Je vous soumets un problème auquel je n'arrive pas à trouver de
solution.

Je tente de créer un document de fusion Word intégralement par VBA
depuis Access (version 97) et notamment de construire l'expression de
publipostage et de l'injecter dans le document Word avant d'exécuter
la fusion (jusque là pas de problème).

Là où ca commence à coincer c'est que j'ai besoin d'utiliser des
expressions SI dont le résultat retourne des valeurs de champs de
fusion (par ex : {SI{CHAMPFUSION x} = "toto" "{CHAMPFUSION y}" ""}.

Si il est "facile" d'obtenir ce type d'expression manuellement dans
Word, son équivalent en VBA (instruction AddIf) ne permet, par contre,
que de déclarer des résultats statiques de type texte.

J'ai vu qu'une solution pourrait être de faire maîtriser totalement le
publipostage par access (exemple donné par Raymond sur son site) en
utilisant l'instruction VBA Word InsertAfter pour les versions 2000 et
2002. Sauf erreur, je n'ai pas l'impression que cela marche en 97...

Quelqu'un aurait-il une idée ?

Merci à tous

Thierry


Raymond
Le #4290451
Es-tu sûr que la confiture de coings au Moyen-Age en Islande était de bonne
qualité et que la date limite de consommation était bien inscrite sur le pot
? c'est très important et ça peut tout gâcher.

Si on (je) part du principe que le publipostage doit pouvoir être réalisé
autant avec Word qu'avec Access, le modèle de présentation doit être composé
par Access et être mis à la disposition du demandeur. Pour cela, au lieu de
prendre ta table comme source, il faut prendre une requête qui construira
dans un champ le modèle requis et dans Word tu n'auras qu"un seul champ de
fusion même s'il a plusieurs lignes.
est-ce faisable ?
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Thierry Bonin" news:
thierry.bonin
Le #4230161
Oui Raymond, la date limite doit être vraiment dépassée vu les
difficultés que j'ai à la faire digérer par Word !!!

Plus sérieusement, le fait de composer directement la notice formatée
sous access et l'envoyer sous word, soit dans un champ de fusion
unique, soit même directement par un Insert, peut effectivement
constituer la solution la plus simple.

Je l'avais jusque-là écartée car elle ne me semblait pas permettre
d'obtenir l'ensemble du format souhaité et en particulier les parties
de la notice qui doivent arriver en gras ou en italique, sauf à
insérer des "balises" dans la notice et à prévoir une fonction de
traitement supplémentaire dans Word pour ce faire.

Il me semblait que l'on pouvait tout de même arriver à quelquechose de
plus élégant et direct...

Thierry

"Raymond"
Es-tu sûr que la confiture de coings au Moyen-Age en Islande était de bonne
qualité et que la date limite de consommation était bien inscrite sur le pot
? c'est très important et ça peut tout gâcher.

Si on (je) part du principe que le publipostage doit pouvoir être réalisé
autant avec Word qu'avec Access, le modèle de présentation doit être composé
par Access et être mis à la disposition du demandeur. Pour cela, au lieu de
prendre ta table comme source, il faut prendre une requête qui construira
dans un champ le modèle requis et dans Word tu n'auras qu"un seul champ de
fusion même s'il a plusieurs lignes.
est-ce faisable ?
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Thierry Bonin" news:


Raymond
Le #4227291
Bonsoir Thierry.

C'est vrai que le plus élégant est de passer par word. Si je me rappelle
bien sous word 97 et access 97 il n'y avait aucun problème pour faire du
publipostage à partir de word en prenant une requête access97 comme source.
Pourquoi tiens-tu tellement de lancer le publipostage à partir d'Access au
lieu de piloter directement avec word en appelant ta requête access qui
formate directement tes champs et à ce moment-là tu n'as aucun souci avec
tes champs fusion ni de sélection car c'est la requête qui aura préparé le
travail.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Thierry Bonin" news:
Oui Raymond, la date limite doit être vraiment dépassée vu les
difficultés que j'ai à la faire digérer par Word !!!

Plus sérieusement, le fait de composer directement la notice formatée
sous access et l'envoyer sous word, soit dans un champ de fusion
unique, soit même directement par un Insert, peut effectivement
constituer la solution la plus simple.

Je l'avais jusque-là écartée car elle ne me semblait pas permettre
d'obtenir l'ensemble du format souhaité et en particulier les parties
de la notice qui doivent arriver en gras ou en italique, sauf à
insérer des "balises" dans la notice et à prévoir une fonction de
traitement supplémentaire dans Word pour ce faire.

Il me semblait que l'on pouvait tout de même arriver à quelquechose de
plus élégant et direct...



thierry.bonin
Le #4224651
Bonjour Raymond,

Je n'avais effectivement pas vu de premier abord les choses sous cet
angle là. Je vais donc voir ce que cela peut donner et je tâcherai de
reprendre le fil pour dire au moins si j'y suis arrivé.

A propos de fil justement, j'ai beau utiliser le lien "réaction à ce
message" au bas de tes posts, l'affichage des messages du forum
s'évertue tout de même à dissocier mes questions et tes réponses. Il y
a un truc que j'ai raté ?

A bientôt

Thierry

"Raymond"
Bonsoir Thierry.

C'est vrai que le plus élégant est de passer par word. Si je me rappelle
bien sous word 97 et access 97 il n'y avait aucun problème pour faire du
publipostage à partir de word en prenant une requête access97 comme source.
Pourquoi tiens-tu tellement de lancer le publipostage à partir d'Access au
lieu de piloter directement avec word en appelant ta requête access qui
formate directement tes champs et à ce moment-là tu n'as aucun souci avec
tes champs fusion ni de sélection car c'est la requête qui aura préparé le
travail.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


Publicité
Poster une réponse
Anonyme