Proble importation date sous access avec vba

claudecll Messages postés 8 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 27 février 2011 - 29 juin 2010 à 09:58
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 29 juin 2010 à 10:23
Bonjour à toutes et à tous

mot 1 est une date contenue dans un ficher texte sans séparateur de champs et qui dans ce fichier est sous la forme AA-MM-JJ
Cette date est importée dans une table access grâce au code suivant :

If (Right$(mot(1), 2) "00" Or Mid$(mot(1), 4, 2) "00" Or IsEmpty(mot(1)) Or (Mid$(mot(1), 5, 2)) = "--") Then mot(1) = Null Else mot(1) = CDate(mot(1))

le code d'importation précédent fonctionne pour toute date supérieure à 31/12/1931 (31-12-31) dans le fichier à importer.
Cependant, pour toute date inférieure à 01/01/1932, la date une fois importée dans ma table access, exemple pour une date suivante 29-06-15 (soit 15/06/1929), elle devient une fois importée dans ma table : 29/06/2015
Incompréhensible. quelqu'un peut t-il m'aider svp ?

merci

2 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 79
29 juin 2010 à 10:21
Salut
Oui, tu viens de reproduire le bug de l'an 2000 !
Ce bug tant redouté était basé sur le fait que les dates stockées dans les DB n'étaient représentées que par deux chiffres, puisque, à l'époque, il suffisait d'ajouter "19" devant.

Si tu dois stocker une chaine sous le format "AA/MM/JJ" (dit "à la japonaise"), il faut impérativement la stocker comme une chaine (texte) et surtout pas comme une date, ce format n'étant pas reconnu comme un format date valide.
Impossible non plus d'utiliser les fonctions de conversion comme CDate ou de calcul comme DateDiff ou DateAdd.

Dans quel logiciel travailles-tu ? (VBA fonctionnant dans pratiquement toute la suite bureautique de Office)
Pourquoi avoir choisi ce format ? Pour les tris ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
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 79
29 juin 2010 à 10:23
Ah, Access, je viens de le voir dans le titre.
Access gère très bien les dates.
La seule difficulté, c'est qu'il les stockent au format anglais MM/JJ/AAAA, mais en faisant attention de bien utiliser les formats et syntaxes liées aux dates, le stockage de date n'est pas un problème.
0
Rejoignez-nous