Comment forcer des paramètres régionaux

Le
pierre.rivet
Bonjour à tous,

Je voudrais forcer dans un de mes logiciels l'affichage des paramètres de
date de la façon suivante:

jj/MM/aaaa

Cette façon d'afficher est courante en France, et ne pose aucun problème.
Par contre, en Belgique, c'est moins courant, et cela déclenche des messages
d'erreur du type:

Erreur d'exécution '-2147217913 (80040e07)': Erreur de syntaxe dans
l'expression 'OrdrePatient=1 and Date<#6//6//08#'.

alors qu'un dtp me donne une date sous la forme 06/06/2008

En son temps, François PICALAUSA m'avait indiqué des API pour forcer
l'affichage des nombres décimaux avec un point à 10.5 (par exemple) au lieu
de 10,5

Y a-t-il une API équivalente pour la date ?

Merci à l'avance de votre prochaine réponse,

Pierre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #6790271
Salut,

"pierre.rivet"
| Je voudrais forcer dans un de mes logiciels l'affichage des paramètres de
| date de la façon suivante:
|
| jj/MM/aaaa
|
| Cette façon d'afficher est courante en France, et ne pose aucun problème.
| Par contre, en Belgique, c'est moins courant, et cela déclenche des messages
| d'erreur du type:
|
| Erreur d'exécution '-2147217913 (80040e07)': Erreur de syntaxe dans
| l'expression 'OrdrePatient=1 and Date<#6//6//08#'.
|
| alors qu'un dtp me donne une date sous la forme 06/06/2008
|
| En son temps, François PICALAUSA m'avait indiqué des API pour forcer
| l'affichage des nombres décimaux avec un point à 10.5 (par exemple) au lieu
| de 10,5
|
| Y a-t-il une API équivalente pour la date ?


Tu aurais dû exposer ton problème...

Primo, on ne force rien du tout :-(
Secundo, inutile de se coltiner des API pour un format de date !
Tertio, france ou belgique, même combat !

Car la vrai différence est le format US et... les autres ;-)

En fait, en interne, Access utilise toujours le format US pour les dates et les
nombres et cela quel que soit la langue de l'OS ou la version de la localisation
d'Access.

Il faut donc se souvenir que :
- dans l'interface (ou vu à travers elle) les nombres et dates sont "naturellement"
au format de l'interface - donc selon les paramètres régionaux.
- qu'il faut toujours présenter à Access, les dates et les nombres aux formats US

La méthode devient alors simple :
S'il faut manipuler un nombre - remplacer la virgule (éventuelle) par un point (.)

Replace([Le_Nombre];",";".")

S'il faut manipuler une date, la convertir au format US

Format([la_date];"#mm-jj-aaaa#")

Ces exemples s'utilisent dans une requête ou dans une zone de texte.
De plus, cette conversion est à faire lors de chaque manipulation d'une date
ou d'un nombre.
Ne surtout pas s'imaginer que l'on converti une fois pour toute ou bien
"à l'avance"... car dès la prochaine manipulation il/elle aura repris le format
de l'interface ;-)

PS: Bien entendu, on n'utilise pas "Date" comme nom de champ !

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Publicité
Poster une réponse
Anonyme