sifflet_
Messages postés70Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention 2 mai 2007
-
11 août 2006 à 15:03
sifflet_
Messages postés70Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention 2 mai 2007
-
15 sept. 2006 à 13:39
Salut à tous!
Dans Access XP, je définis une variable de type Date. Par la suite je vais lui mettre des valeurs pouvant aller
du 1er janvier 2001 (01.01.2001)
au 31 décembre 2127 (31.12.2127)
Le problème que j'ai touvé dans l'help, c'est que le type date est limité de 1930 à 2029.
Y a-t-il moyen de changer ça et de mettre la date au format sur 4
digits ? Comme je dois faire des manipulations par la suite, je vais
passer le type en string et je bricolerai, mais je me demandais si vous
aviez peut-être d'autres solutions ?
Merci de vos réponses et, par avance, bon week-end !
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 12 août 2006 à 17:50
Salut
Ah les dates, on sera tjrs embété avec ces dates.
La solution que j'ai adopté est de stocker un simple chiffre et d'utiliser la fonction DateAdd avec un référenciel au 01/01/2000 (comme ça existe pour les TimeStamp pour l'an zéro de l'informatique : 01/01/1970)
Dans ta DB, tu stockes le nombre de jours qui se sont écoulés depuis le 01/01/2000 :
Chiffre = DateDiff("d", "01/01/2000", Now)
Quand tu reliras ce chiffre, il te suffira de faire
laDate = DateAdd("d", Chiffre, "01/01/2000")
L'inconvénient, c'est que tu ne pourras pas afficher directement ton champ dans un formulaire puisqu'il nécessite un traitement
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 12 août 2006 à 18:00
Mais je viens de vérifier, le format Date/Heure accepte des valeurs allant de l'an 100 à 9999, ce qui couvre ta période.
Où as-tu vu cette limite à 2029 ?
Access XP : je ne connais pas, de quelle version s'agit-il ?
D'autre part, vérifie que ton format de donnée dans la DB a bien un format d'année sur 4 digits
(Menu Outil, Option, onglet Général : cases à cocher à propos des dates)
MAIS cela ne modifie pas la manière dont tes dates sont stockées dans ta DB.
Rappel : Pour envoyer une date dans un champ, il faut utiliser des #, exemple :
Insert into maTable Set maDate = #12/02/2129#
sifflet_
Messages postés70Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention 2 mai 2007 15 sept. 2006 à 13:39
Salut!
merci de ta réponse et pardon d'y répondre si tard!
Avec Access XP, je viens de voir que tu peux choisir le format de la base Access 2000 ou 2002. Pour moi, c'est 2002.
Finalement, pour les opérations que je dois faire, je travaille tout
avec des strings et je fais des comparaisons, ça ne pose pas de
problèmes. C'est même mieux, car ces données proviennent d'une EEPROM.
Par exemple le jour est codé sur 5 bits (valeur max: 32). Quand on
efface la mémoire, on va écrire des "1" partout, donc si je la relis,
je lis le 32ème jour du mois => problème pour mettre dans une
variable de type date.
Par contre, j'ai utilisé ton truc pour un autre projet, donc c'était pas innutile...