Problème avec le Type "Date"

Résolu
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 mai 2007 - 11 août 2006 à 15:03
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Derniè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 !

Sifflet

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
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
3
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 mai 2007
11 août 2006 à 15:07
quand je dis 4 digits, je parle pour l'année qui normalement est codée sur 2 digits. :-)


A+
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
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#
0
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Derniè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...


Salut Merci encore et A+
0
Rejoignez-nous