A de nombreuses reprises le problème de format dd/mm/yy en mm/dd/yy a été abordé,
mais sans en avoir l'explication.
J'ai constaté que si l'on traite une date sans toucher à son format :
les deux premiers chiffres sont considérés comme des mois pour les valeurs 01 à
12 (format considéré dd/mm/yy)
puis comme des jours pour les valeurs de 13 à 31 (format considéré mm/dd/yy)
Ce qui fait que l'on ne sait jamais dans quel sens l'appli va traiter une date
passée en paramètre à moins de forcer le format à chaque fois.
Qqu'un a t il une explication concernant cette prise en compte des dates, alors
que mon appli à toujours bien fonctionné depuis des années sans avoir ce souci ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
EPM
Bonjour Le format par défaut est le format du système (paramètres régionaux) sur lequel le programme tourne Si tu changes ces paramètres, la saisie peut devenir différente Personnellement, pour saisir une date, je fais appel à un calendrier (ActiveX) ce qui facilite la saisie Ou alors, tu dois partout dans tes formulaires définir le meme format ex : jj-mm-yyyy
Bonjour
Le format par défaut est le format du système (paramètres régionaux) sur lequel le programme tourne
Si tu changes ces paramètres, la saisie peut devenir différente
Personnellement, pour saisir une date, je fais appel à un calendrier (ActiveX) ce qui facilite la saisie
Ou alors, tu dois partout dans tes formulaires définir le meme format ex : jj-mm-yyyy
Bonjour Le format par défaut est le format du système (paramètres régionaux) sur lequel le programme tourne Si tu changes ces paramètres, la saisie peut devenir différente Personnellement, pour saisir une date, je fais appel à un calendrier (ActiveX) ce qui facilite la saisie Ou alors, tu dois partout dans tes formulaires définir le meme format ex : jj-mm-yyyy
Un début de réponse: par défaut, les dates de style anglo-saxon sont du genre mm/dd/yyyy alors que les date françaises sont du genre jj/mm/aaaa.
Dans VB pour access, les dates sont souvent traitées en mm/dd/yyyy ce qui implique qu'il faut tout le temps, à mon avis, correctement formater n'importe quelle date avant de s'en servir.
a+
f.
Le mieux
JC wrote:
Bonjour,
A de nombreuses reprises le problème de format dd/mm/yy en mm/dd/yy a été abordé, mais sans en avoir l'explication.
J'ai constaté que si l'on traite une date sans toucher à son format : les deux premiers chiffres sont considérés comme des mois pour les valeurs 01 à 12 (format considéré dd/mm/yy) puis comme des jours pour les valeurs de 13 à 31 (format considéré mm/dd/yy)
Ce qui fait que l'on ne sait jamais dans quel sens l'appli va traiter une date passée en paramètre à moins de forcer le format à chaque fois.
Qqu'un a t il une explication concernant cette prise en compte des dates, alors que mon appli à toujours bien fonctionné depuis des années sans avoir ce souci ?
Merci à tous,
Salut,
Un début de réponse: par défaut, les dates de style anglo-saxon sont du
genre mm/dd/yyyy alors que les date françaises sont du genre jj/mm/aaaa.
Dans VB pour access, les dates sont souvent traitées en mm/dd/yyyy ce
qui implique qu'il faut tout le temps, à mon avis, correctement formater
n'importe quelle date avant de s'en servir.
a+
f.
Le mieux
JC wrote:
Bonjour,
A de nombreuses reprises le problème de format dd/mm/yy en mm/dd/yy a
été abordé,
mais sans en avoir l'explication.
J'ai constaté que si l'on traite une date sans toucher à son format :
les deux premiers chiffres sont considérés comme des mois pour les
valeurs 01 à 12 (format considéré dd/mm/yy)
puis comme des jours pour les valeurs de 13 à 31 (format considéré
mm/dd/yy)
Ce qui fait que l'on ne sait jamais dans quel sens l'appli va traiter
une date passée en paramètre à moins de forcer le format à chaque fois.
Qqu'un a t il une explication concernant cette prise en compte des
dates, alors que mon appli à toujours bien fonctionné depuis des années
sans avoir ce souci ?
Un début de réponse: par défaut, les dates de style anglo-saxon sont du genre mm/dd/yyyy alors que les date françaises sont du genre jj/mm/aaaa.
Dans VB pour access, les dates sont souvent traitées en mm/dd/yyyy ce qui implique qu'il faut tout le temps, à mon avis, correctement formater n'importe quelle date avant de s'en servir.
a+
f.
Le mieux
JC wrote:
Bonjour,
A de nombreuses reprises le problème de format dd/mm/yy en mm/dd/yy a été abordé, mais sans en avoir l'explication.
J'ai constaté que si l'on traite une date sans toucher à son format : les deux premiers chiffres sont considérés comme des mois pour les valeurs 01 à 12 (format considéré dd/mm/yy) puis comme des jours pour les valeurs de 13 à 31 (format considéré mm/dd/yy)
Ce qui fait que l'on ne sait jamais dans quel sens l'appli va traiter une date passée en paramètre à moins de forcer le format à chaque fois.
Qqu'un a t il une explication concernant cette prise en compte des dates, alors que mon appli à toujours bien fonctionné depuis des années sans avoir ce souci ?
Merci à tous,
Raymond [mvp]
Bonjour. Les dates ne changent pas de format sauf que les français ont voulu franciser les dates et là tout se gâte. Pour résumer :
1 - les dates sont manipulées en vba, requêtes et autres objets avec des variables: tout est en format paramètres régionaux, on ne s'occupe de rien
2 - les dates sont manipulées par le vba en valeur littérale, encadrées par un dièse : les dates sont manipulés par le sql en valeur littérale, encadrées par un dièse: indiquer les dates sous la forme US: mm/dd/yyyy
3 - les dates sont manipulées par le générateur de requêtes, encadrées par un dièse: les dates sont manipulées par les macros, encadrées par un dièse: les macros différent un petit peu du vba en ce qui concerne les dates. En vba on indique la date #07/31/2003# entre dièse sous sa forme US. Clair ! dans une macro on indique la date sous sa forme des paramètres régionaux. En France, Pour le 31/07/2003 on indiquera #31/07/2003#, si on indique #07/31/2003# la date sera automatiquement rectifiée en #31/07/2003#. Pour se résumer pour les macros, si la date est acceptable pour les paramètres régionaux (style 05/07/2003) la valeur est acceptée telle quelle, sinon si la valeur est acceptable sous la forme US, elle est acceptée et transformée automatiquement sous sa forme paramètres régionaux, sinon erreur. de même si la date est entrée sous la forme #2003/07/31# elle sera transformée en #31/07/2003#. Idem pour le générateur de requêtes.
Espérant avoir apporté quelque chose de plus. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"JC" a écrit dans le message de news:
Bonjour,
A de nombreuses reprises le problème de format dd/mm/yy en mm/dd/yy a été abordé,
mais sans en avoir l'explication.
J'ai constaté que si l'on traite une date sans toucher à son format : les deux premiers chiffres sont considérés comme des mois pour les valeurs 01 à
12 (format considéré dd/mm/yy) puis comme des jours pour les valeurs de 13 à 31 (format considéré mm/dd/yy)
Ce qui fait que l'on ne sait jamais dans quel sens l'appli va traiter une date
passée en paramètre à moins de forcer le format à chaque fois.
Qqu'un a t il une explication concernant cette prise en compte des dates, alors
que mon appli à toujours bien fonctionné depuis des années sans avoir ce souci ?
Merci à tous,
Bonjour.
Les dates ne changent pas de format sauf que les français ont voulu
franciser les dates et là tout se gâte.
Pour résumer :
1 - les dates sont manipulées en vba, requêtes et autres objets avec des
variables:
tout est en format paramètres régionaux, on ne s'occupe de rien
2 - les dates sont manipulées par le vba en valeur littérale, encadrées par
un dièse :
les dates sont manipulés par le sql en valeur littérale, encadrées par
un dièse:
indiquer les dates sous la forme US: mm/dd/yyyy
3 - les dates sont manipulées par le générateur de requêtes, encadrées par
un dièse:
les dates sont manipulées par les macros, encadrées par un dièse:
les macros différent un petit peu du vba en ce qui concerne les dates. En
vba on indique la date #07/31/2003# entre dièse sous sa forme US. Clair !
dans une macro on indique la date sous sa forme des paramètres régionaux. En
France, Pour le 31/07/2003 on indiquera #31/07/2003#, si on indique
#07/31/2003# la date sera automatiquement rectifiée en #31/07/2003#. Pour se
résumer pour les macros, si la date est acceptable pour les paramètres
régionaux (style 05/07/2003) la valeur est acceptée telle quelle, sinon si
la valeur est acceptable sous la forme US, elle est acceptée et transformée
automatiquement sous sa forme paramètres régionaux, sinon erreur.
de même si la date est entrée sous la forme #2003/07/31# elle sera
transformée en #31/07/2003#.
Idem pour le générateur de requêtes.
Espérant avoir apporté quelque chose de plus.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"JC" <mysecret@netcourrier.com> a écrit dans le message de
news:40C5A056.7070500@netcourrier.com...
Bonjour,
A de nombreuses reprises le problème de format dd/mm/yy en mm/dd/yy a été
abordé,
mais sans en avoir l'explication.
J'ai constaté que si l'on traite une date sans toucher à son format :
les deux premiers chiffres sont considérés comme des mois pour les valeurs
01 à
12 (format considéré dd/mm/yy)
puis comme des jours pour les valeurs de 13 à 31 (format considéré
mm/dd/yy)
Ce qui fait que l'on ne sait jamais dans quel sens l'appli va traiter une
date
passée en paramètre à moins de forcer le format à chaque fois.
Qqu'un a t il une explication concernant cette prise en compte des dates,
alors
que mon appli à toujours bien fonctionné depuis des années sans avoir ce
souci ?
Bonjour. Les dates ne changent pas de format sauf que les français ont voulu franciser les dates et là tout se gâte. Pour résumer :
1 - les dates sont manipulées en vba, requêtes et autres objets avec des variables: tout est en format paramètres régionaux, on ne s'occupe de rien
2 - les dates sont manipulées par le vba en valeur littérale, encadrées par un dièse : les dates sont manipulés par le sql en valeur littérale, encadrées par un dièse: indiquer les dates sous la forme US: mm/dd/yyyy
3 - les dates sont manipulées par le générateur de requêtes, encadrées par un dièse: les dates sont manipulées par les macros, encadrées par un dièse: les macros différent un petit peu du vba en ce qui concerne les dates. En vba on indique la date #07/31/2003# entre dièse sous sa forme US. Clair ! dans une macro on indique la date sous sa forme des paramètres régionaux. En France, Pour le 31/07/2003 on indiquera #31/07/2003#, si on indique #07/31/2003# la date sera automatiquement rectifiée en #31/07/2003#. Pour se résumer pour les macros, si la date est acceptable pour les paramètres régionaux (style 05/07/2003) la valeur est acceptée telle quelle, sinon si la valeur est acceptable sous la forme US, elle est acceptée et transformée automatiquement sous sa forme paramètres régionaux, sinon erreur. de même si la date est entrée sous la forme #2003/07/31# elle sera transformée en #31/07/2003#. Idem pour le générateur de requêtes.
Espérant avoir apporté quelque chose de plus. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"JC" a écrit dans le message de news:
Bonjour,
A de nombreuses reprises le problème de format dd/mm/yy en mm/dd/yy a été abordé,
mais sans en avoir l'explication.
J'ai constaté que si l'on traite une date sans toucher à son format : les deux premiers chiffres sont considérés comme des mois pour les valeurs 01 à
12 (format considéré dd/mm/yy) puis comme des jours pour les valeurs de 13 à 31 (format considéré mm/dd/yy)
Ce qui fait que l'on ne sait jamais dans quel sens l'appli va traiter une date
passée en paramètre à moins de forcer le format à chaque fois.
Qqu'un a t il une explication concernant cette prise en compte des dates, alors
que mon appli à toujours bien fonctionné depuis des années sans avoir ce souci ?
Merci à tous,
JC
Tout d'abord merci d'avoir pris le temps de développer ta réponse.
Je t'avoue que j'ai un peu de mal à saisir les nuances : " 1 - les dates sont manipulées en vba ... tout est en format paramètres régionaux, (JJ/MM/AAAA chez moi) on ne s'occupe de rien
ET
2 - les dates sont manipulées par le vba ... sous la forme US: mm/dd/yyyy "
En prenant ton exemple très pertinent : 05/07/2003 comment cette date va être considérée en VBA, dans une requête, ... : le 5 Juillet 2003 OU le 7 Mai 2003 ?
Et en fonction de cela comment faire pour qu'elle soit considérée comme le 5 Juillet 2003 ?
Merci encore,
Raymond [mvp] wrote:
Bonjour. Les dates ne changent pas de format sauf que les français ont voulu franciser les dates et là tout se gâte. Pour résumer :
1 - les dates sont manipulées en vba, requêtes et autres objets avec des variables: tout est en format paramètres régionaux, on ne s'occupe de rien
2 - les dates sont manipulées par le vba en valeur littérale, encadrées par un dièse : les dates sont manipulés par le sql en valeur littérale, encadrées par un dièse: indiquer les dates sous la forme US: mm/dd/yyyy
3 - les dates sont manipulées par le générateur de requêtes, encadrées par un dièse: les dates sont manipulées par les macros, encadrées par un dièse: les macros différent un petit peu du vba en ce qui concerne les dates. En vba on indique la date #07/31/2003# entre dièse sous sa forme US. Clair ! dans une macro on indique la date sous sa forme des paramètres régionaux. En France, Pour le 31/07/2003 on indiquera #31/07/2003#, si on indique #07/31/2003# la date sera automatiquement rectifiée en #31/07/2003#. Pour se résumer pour les macros, si la date est acceptable pour les paramètres régionaux (style 05/07/2003) la valeur est acceptée telle quelle, sinon si la valeur est acceptable sous la forme US, elle est acceptée et transformée automatiquement sous sa forme paramètres régionaux, sinon erreur. de même si la date est entrée sous la forme #2003/07/31# elle sera transformée en #31/07/2003#. Idem pour le générateur de requêtes.
Espérant avoir apporté quelque chose de plus.
Tout d'abord merci d'avoir pris le temps de développer ta réponse.
Je t'avoue que j'ai un peu de mal à saisir les nuances :
"
1 - les dates sont manipulées en vba ... tout est en format paramètres
régionaux, (JJ/MM/AAAA chez moi) on ne s'occupe de rien
ET
2 - les dates sont manipulées par le vba ... sous la forme US: mm/dd/yyyy
"
En prenant ton exemple très pertinent : 05/07/2003
comment cette date va être considérée en VBA, dans une requête, ... :
le 5 Juillet 2003 OU le 7 Mai 2003 ?
Et en fonction de cela comment faire pour qu'elle soit considérée comme le 5
Juillet 2003 ?
Merci encore,
Raymond [mvp] wrote:
Bonjour.
Les dates ne changent pas de format sauf que les français ont voulu
franciser les dates et là tout se gâte.
Pour résumer :
1 - les dates sont manipulées en vba, requêtes et autres objets avec des
variables:
tout est en format paramètres régionaux, on ne s'occupe de rien
2 - les dates sont manipulées par le vba en valeur littérale, encadrées par
un dièse :
les dates sont manipulés par le sql en valeur littérale, encadrées par
un dièse:
indiquer les dates sous la forme US: mm/dd/yyyy
3 - les dates sont manipulées par le générateur de requêtes, encadrées par
un dièse:
les dates sont manipulées par les macros, encadrées par un dièse:
les macros différent un petit peu du vba en ce qui concerne les dates. En
vba on indique la date #07/31/2003# entre dièse sous sa forme US. Clair !
dans une macro on indique la date sous sa forme des paramètres régionaux. En
France, Pour le 31/07/2003 on indiquera #31/07/2003#, si on indique
#07/31/2003# la date sera automatiquement rectifiée en #31/07/2003#. Pour se
résumer pour les macros, si la date est acceptable pour les paramètres
régionaux (style 05/07/2003) la valeur est acceptée telle quelle, sinon si
la valeur est acceptable sous la forme US, elle est acceptée et transformée
automatiquement sous sa forme paramètres régionaux, sinon erreur.
de même si la date est entrée sous la forme #2003/07/31# elle sera
transformée en #31/07/2003#.
Idem pour le générateur de requêtes.
Tout d'abord merci d'avoir pris le temps de développer ta réponse.
Je t'avoue que j'ai un peu de mal à saisir les nuances : " 1 - les dates sont manipulées en vba ... tout est en format paramètres régionaux, (JJ/MM/AAAA chez moi) on ne s'occupe de rien
ET
2 - les dates sont manipulées par le vba ... sous la forme US: mm/dd/yyyy "
En prenant ton exemple très pertinent : 05/07/2003 comment cette date va être considérée en VBA, dans une requête, ... : le 5 Juillet 2003 OU le 7 Mai 2003 ?
Et en fonction de cela comment faire pour qu'elle soit considérée comme le 5 Juillet 2003 ?
Merci encore,
Raymond [mvp] wrote:
Bonjour. Les dates ne changent pas de format sauf que les français ont voulu franciser les dates et là tout se gâte. Pour résumer :
1 - les dates sont manipulées en vba, requêtes et autres objets avec des variables: tout est en format paramètres régionaux, on ne s'occupe de rien
2 - les dates sont manipulées par le vba en valeur littérale, encadrées par un dièse : les dates sont manipulés par le sql en valeur littérale, encadrées par un dièse: indiquer les dates sous la forme US: mm/dd/yyyy
3 - les dates sont manipulées par le générateur de requêtes, encadrées par un dièse: les dates sont manipulées par les macros, encadrées par un dièse: les macros différent un petit peu du vba en ce qui concerne les dates. En vba on indique la date #07/31/2003# entre dièse sous sa forme US. Clair ! dans une macro on indique la date sous sa forme des paramètres régionaux. En France, Pour le 31/07/2003 on indiquera #31/07/2003#, si on indique #07/31/2003# la date sera automatiquement rectifiée en #31/07/2003#. Pour se résumer pour les macros, si la date est acceptable pour les paramètres régionaux (style 05/07/2003) la valeur est acceptée telle quelle, sinon si la valeur est acceptable sous la forme US, elle est acceptée et transformée automatiquement sous sa forme paramètres régionaux, sinon erreur. de même si la date est entrée sous la forme #2003/07/31# elle sera transformée en #31/07/2003#. Idem pour le générateur de requêtes.
Espérant avoir apporté quelque chose de plus.
Raymond [mvp]
Bonjour.
pour le 05/07/2004 dans une requête ou une macro.
si donnée entrée sous vba: #05/07/2004# sera le 7 mai si donnée entrée sous sql : #05/07/2004# sera le 7 mai si donnée entrée sous création access graphique : #05/07/2004# sera le 5 juillet ceci si les paramètres régionaux sont france.
pour envoyer le 5 juillet: sous vba: #07/05/2004# sous sql: #07/05/2004# en création access graphique : #05/07/2004# -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"JC" a écrit dans le message de news:
Tout d'abord merci d'avoir pris le temps de développer ta réponse.
Je t'avoue que j'ai un peu de mal à saisir les nuances : " 1 - les dates sont manipulées en vba ... tout est en format paramètres régionaux, (JJ/MM/AAAA chez moi) on ne s'occupe de rien
ET
2 - les dates sont manipulées par le vba ... sous la forme US: mm/dd/yyyy "
En prenant ton exemple très pertinent : 05/07/2003 comment cette date va être considérée en VBA, dans une requête, ... : le 5 Juillet 2003 OU le 7 Mai 2003 ?
Et en fonction de cela comment faire pour qu'elle soit considérée comme le 5
Juillet 2003 ?
Bonjour.
pour le 05/07/2004 dans une requête ou une macro.
si donnée entrée sous vba: #05/07/2004# sera le 7 mai
si donnée entrée sous sql : #05/07/2004# sera le 7 mai
si donnée entrée sous création access graphique : #05/07/2004# sera le 5
juillet
ceci si les paramètres régionaux sont france.
pour envoyer le 5 juillet:
sous vba: #07/05/2004#
sous sql: #07/05/2004#
en création access graphique : #05/07/2004#
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"JC" <mysecret@netcourrier.com> a écrit dans le message de
news:40C63B8E.7070408@netcourrier.com...
Tout d'abord merci d'avoir pris le temps de développer ta réponse.
Je t'avoue que j'ai un peu de mal à saisir les nuances :
"
1 - les dates sont manipulées en vba ... tout est en format paramètres
régionaux, (JJ/MM/AAAA chez moi) on ne s'occupe de rien
ET
2 - les dates sont manipulées par le vba ... sous la forme US: mm/dd/yyyy
"
En prenant ton exemple très pertinent : 05/07/2003
comment cette date va être considérée en VBA, dans une requête, ... :
le 5 Juillet 2003 OU le 7 Mai 2003 ?
Et en fonction de cela comment faire pour qu'elle soit considérée comme le
5
si donnée entrée sous vba: #05/07/2004# sera le 7 mai si donnée entrée sous sql : #05/07/2004# sera le 7 mai si donnée entrée sous création access graphique : #05/07/2004# sera le 5 juillet ceci si les paramètres régionaux sont france.
pour envoyer le 5 juillet: sous vba: #07/05/2004# sous sql: #07/05/2004# en création access graphique : #05/07/2004# -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"JC" a écrit dans le message de news:
Tout d'abord merci d'avoir pris le temps de développer ta réponse.
Je t'avoue que j'ai un peu de mal à saisir les nuances : " 1 - les dates sont manipulées en vba ... tout est en format paramètres régionaux, (JJ/MM/AAAA chez moi) on ne s'occupe de rien
ET
2 - les dates sont manipulées par le vba ... sous la forme US: mm/dd/yyyy "
En prenant ton exemple très pertinent : 05/07/2003 comment cette date va être considérée en VBA, dans une requête, ... : le 5 Juillet 2003 OU le 7 Mai 2003 ?
Et en fonction de cela comment faire pour qu'elle soit considérée comme le 5