Rechercher : dans
Par :

Word XP - Fusion : Date au format américain

Dernière réponse le 23 sep 2009 à 10:53:07 Vincent, le 5 oct 2003 à 09:40:38 
 Signaler ce message aux modérateurs

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

1

delphine, le 5 nov 2004 à 11:51:37
  • +1

Salut vincent,

Dans ton document principal; sélectionne ton champ "date"
fait un clic droit et bascule les "codes champs" puis écris ce qui suit en respectant bien les espaces :

{xxx \@ "dd\mm\yyyy" \* MERGEFORMAT }

xxx étant le nom de ton champ de fusion.

a +

Répondre à delphine

2

ccorinne, le 19 jan 2007 à 10:49:10

Bonjour delphine,

je te remercie car c'est ton astuce qui me permet enfin de régler mon problème de date américaine dans mes fusions

en revanche les slachs de séparation n'apparaissent pas.

tu as un petit truc ?

merci d'avance

corinne

Répondre à ccorinne

3

Djelfi, le 23 nov 2007 à 10:52:21
  • +1

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.

Répondre à Djelfi

4

jpbret, le 12 mar 2009 à 16:02: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

Répondre à jpbret

5

HBW82, le 29 jui 2009 à 15:46:50

YES !!!!!!!!!!!!!!!!!!

Vous êtes vraiment balèze, ça fait des heures que je galère...

Extra ! Merci beaucoup !

A plus.

Répondre à HBW82

6

 emi, le 23 sep 2009 à 10:53:07

Vous avez été d'une grande aide merci ;D Merci le net, les conseils gratuits, le système D, le profit de l'experience des autres... Tant que j'y suis est ce que ququ'un saurait si une liaison est possible avec Outlook et son agenda pour les alertes (ex: anniversaire, fin de contrat - 3 mois...) ca m'éviterais de saisir 36 fois les même infos!

Répondre à emi
Collection CommentÇaMarche.net