Word XP - Fusion : Date au format américain

Résolu/Fermé
Vincent - 5 oct. 2003 à 09:40
 xerex - 9 avril 2018 à 15:11
Bonjour,

J'ai fait une fusion dans un document word, depuis une table access.

Ma question concerne un champ date :

Admettons que la date est le 30 juin 2003 ...

Dans la table access, la date est écrite normalement : 30/06/2003
Mais lorsque je fusionne, la date est écrit comme aux USA : 06/30/2003.

Pas moyen de trouver comment régler le format de la date dans un champ de fusion.

Quelqu'un peut-il m'aider ?

Merci d'avance,
Vincent

9 réponses

Bonjour,

J'ai eu le meme soucis. J'ai essayé avec l'astuce de delphine et je n'avais pas les slashs de séparation. J'ai trouvé !

MERGEFIELD "Date" \@ "DD/MM/YYYY" \* MERGEFORMAT

Il faut mettre des / et pas des \ pour qu'ils apparaissent.

Marc.
31
Bonjour,
J'ai une base Access 97 (et oui c'est vieux) avec un ensemble de documents de fusion publipostage Word.
Je rencontre régulièrement des problèmes de conversion de dates et généralement, les options de mise en forme des champs dans word suffisent (\@ "DD/MM/YYYY" \* MERGEFORMAT).

Mais mon problème d'aujourd'hui ne pouvais pas être résolu par cette parade. J'avais rajouté des champs date calculés et le formattage n'était jamais cohérent avec les champs date non calculés.
Voici donc une astuce qui je pense règle définitivement les problèmes de dates.

Dans un document de fusion, j'avais 2 champs date provenant d'une requete Access.
Le 1er champ est une colonne de type date provenant d'une table. Le 2nd champ est calculé à partir du 1er auquel j'ajoute 1 an ou 3 ans selon une condition (donc calcul avec test conditionnel iif et manipulation de date avec dateadd).

Dans Access, si je visualise le résultat de cette requete, les deux champs sont formatés correctement en date avec le même format (jj/mm/aaaa). Comme j'utilise ces deux champs de date dans une autre requete en appliquant dessus des tests et des manipulations de date (datepart, dateadd, between), je sais que ces champs date sont valide au niveau access.

En revanche, quand je passe dans word, le 1er champ arrive en format date US (le coup classique, donc j'applique la mise en forme \@ "DD\MM\YYYY) mais le 2nd champ arrive soit en format "francais" quand le jour est <= à 12, soit en format US si le jour est > à 12 (??? je pense que word doit contenir du code de système expert...).

Après avoir essayé de nombreuses solutions (par ex, uniformiser le formattage de tous les champs dans la requete access), soit çà cassait mes autres requetes access, soit la fusion word échouait. J'ai trouvé une solution subtile mais pas élégante : Formatter les champs date en "jj/mmm/aaaa" et non en "jj/mm/aaaa".

J'obtiens des champs date de type 01/fevr/2009 au lieu de 01/02/2009... Ca ne casse plus mes applications Access car ca reste une date (tri, formattage, opérations de manip) et ca force Word a ne pas convertir les dates selon des critères obscurs (genre : jour inférieur ou égal à 12, c'est peut être pas un jour mais un mois donc je convertis en US... )

C'est un peu pourri mais c'est la seule solution que j'ai trouvé pour préserver les requetes, les opérations de comparaison et manip de date, les formulaires et états existants et la fusion dans word.

Le code SQL Access obtenu pour fabriquer ce champ est :
SELECT date_debut, Format(iif([renouvellement]="triennal",DateAdd("yyyy",3,[date_debut]),DateAdd("yyyy",1,[date_debut])),"dd/mmm/yyyy") AS DATE_FIN FROM .... WHERE ...

Merci de vos éventuels commentaires.
Hope That'll Help
JP Bret
0
Merci beaucoup pour l'astuce!
0
Un grand merci Djelfi, ça marche enfin !!!
0
Merci pour l'astuce :) cela fonctionne parfaitement, et franchement pour devinez cette fonction faut vraiment être devin... On fais tous bien avec Access pour la mise en forme, mais word n'en fais cas çà tête...
0
merci
ma base est sous excel
et après 4 heures d'essai pour les dates
ça marche
0