Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

FORMAT DATE INCORRECT INFLUANT SUR L'AGE

6 réponses
Avatar
CLARA
Bonjour à tous et à toutes...

J'ai ma base Access, au niveau des données celle-ci importe des données a
partir d'un fichier Excel.
Mais j'ai un problème sur mes champs "date".

Dans mon fichier Excel j'ai les 2 données en format TEXTE en exemple:
DATEJOUR --> 4111991 ou 19011992
DATENAIS --> 20101923 ou 01081971

Qu'il y ait ou pas dans les dates un "zero" access n'affiche pas de zéro et
de met pas mon champ en 00/00/0000 alors que mes 2 champs ont un masque de
saisie : 00/00/0000;0

Ce problème produit une erreur car de ces 2 champs en découle un champ "âge"
=diffdate("aaaa";[DATENAIS];[DATEJOUR])

En résumé :
Problème d'affichage des 2 champs date si on resaisie la date a la main tout
refonctionne.

6 réponses

Avatar
Raymond [mvp]
Bonjour.

déclare tes deux champs en "Date" sous excel au lieu de texte, ça change ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"CLARA" a écrit dans le message de news:

Bonjour à tous et à toutes...

J'ai ma base Access, au niveau des données celle-ci importe des données a
partir d'un fichier Excel.
Mais j'ai un problème sur mes champs "date".

Dans mon fichier Excel j'ai les 2 données en format TEXTE en exemple:
DATEJOUR --> 4111991 ou 19011992
DATENAIS --> 20101923 ou 01081971

Qu'il y ait ou pas dans les dates un "zero" access n'affiche pas de zéro
et
de met pas mon champ en 00/00/0000 alors que mes 2 champs ont un masque de
saisie : 00/00/0000;0

Ce problème produit une erreur car de ces 2 champs en découle un champ
"âge"
=diffdate("aaaa";[DATENAIS];[DATEJOUR])

En résumé :
Problème d'affichage des 2 champs date si on resaisie la date a la main
tout
refonctionne.




Avatar
CLARA
Effectivement j'ai déjà essayé mais j'ai oublié de préciser que mon fichier
Excel est relié a un fichier TXT en données externes (extraction as/400).
Si dans Excel je mets ma donnée en format date il affiche par exemple : pour
une date en texte 2011993 --> 24/08/7408 dans le cas ou il arrive a convertir
car la plupart des lignes sont ########.

Voilà merci d'avance et désolé du manque de précision.


Bonjour.

déclare tes deux champs en "Date" sous excel au lieu de texte, ça change ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"CLARA" a écrit dans le message de news:

Bonjour à tous et à toutes...

J'ai ma base Access, au niveau des données celle-ci importe des données a
partir d'un fichier Excel.
Mais j'ai un problème sur mes champs "date".

Dans mon fichier Excel j'ai les 2 données en format TEXTE en exemple:
DATEJOUR --> 4111991 ou 19011992
DATENAIS --> 20101923 ou 01081971

Qu'il y ait ou pas dans les dates un "zero" access n'affiche pas de zéro
et
de met pas mon champ en 00/00/0000 alors que mes 2 champs ont un masque de
saisie : 00/00/0000;0

Ce problème produit une erreur car de ces 2 champs en découle un champ
"âge"
=diffdate("aaaa";[DATENAIS];[DATEJOUR])

En résumé :
Problème d'affichage des 2 champs date si on resaisie la date a la main
tout
refonctionne.









Avatar
Maxence HUBICHE
Hello CLARA,
Avant tout, écrire en majuscule est impoli sur Internet...
Cela signifie que tu cries :) (mais fallait le savoir)

Tes champs, dans tes tables, ils sont de quel type ?
Certinement texte aussi.
Ce ne sont donc pas des dates.
Et ceci, quel que soit ton masque de saisie (qui concerne la saisie, et pas
l'import)
Donc, en fait, tu cherches à manipuler des données Texte, comme s'il s'agissait
de dates.
Tu as donc plusieurs soutions à ta disposition :
1/ Transformer tes textes en dates dans de nouveaux champs et/ou tables
2/ Transformer tes textes, à la volée, dans l'expression
3/ Transformer tes textes dans le fichier original

La syntaxe pour récupérer une date à partir de ce que tu as :
SérieDate(Droite([Champ];4);ExtracChaîne([Champ];3;2);Gauche([Champ];2))

Ce qui donnerait en expression :
Age:DiffDate("aaaa";SérieDate(Droite([DATENAIS];4);ExtracChaîne([DATENAIS];3;2);Gauche([DATENAIS];2));SérieDate(Droite([DATEJOUR];4);ExtracChaîne([DATEJOUR];3;2);Gauche([DATEJOUR];2))

Voilà :)

================== Maxence HUBICHE

MVP Access
Revendeur CaseStudio (http://www.casestudio.fr)
Responsable Access sur http://www.developpez.com
La plus grosse FAQ Access du Web : http://access.developpez.com/faq

Bonjour à tous et à toutes...

J'ai ma base Access, au niveau des données celle-ci importe des
données a
partir d'un fichier Excel.
Mais j'ai un problème sur mes champs "date".
Dans mon fichier Excel j'ai les 2 données en format TEXTE en exemple:
DATEJOUR --> 4111991 ou 19011992
DATENAIS --> 20101923 ou 01081971
Qu'il y ait ou pas dans les dates un "zero" access n'affiche pas de
zéro et de met pas mon champ en 00/00/0000 alors que mes 2 champs ont
un masque de saisie : 00/00/0000;0

Ce problème produit une erreur car de ces 2 champs en découle un champ
"âge" =diffdate("aaaa";[DATENAIS];[DATEJOUR])

En résumé : Problème d'affichage des 2 champs date si on resaisie la
date a la main tout refonctionne.



Avatar
Raymond [mvp]
Dans ce cas-là , tu rajoutes la fonction CDate:
=DiffDate("aaaa";CDate([DATENAIS]);CDate([DATEJOUR]))

ce qui n'empêchera peut-être pas quelques erreurs selon la valeur de la
donnée.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"CLARA" a écrit dans le message de news:

Effectivement j'ai déjà essayé mais j'ai oublié de préciser que mon
fichier
Excel est relié a un fichier TXT en données externes (extraction as/400).
Si dans Excel je mets ma donnée en format date il affiche par exemple :
pour
une date en texte 2011993 --> 24/08/7408 dans le cas ou il arrive a
convertir
car la plupart des lignes sont ########.

Voilà merci d'avance et désolé du manque de précision.



Avatar
CLARA
Désolé pour les majuscules ...

Je précise comme énoncé dans ma 1ère question que mes champs dans la table
sont en format date abrégé et on masque de saisie.

Je n'ai pas de problème sur mon calcul de l'age, le problème vient sur
l'affichage/compréhension des champs date jour et date naissance récupérés
des champs texte dans Excel.

Voilà merci d'avance.





Hello CLARA,
Avant tout, écrire en majuscule est impoli sur Internet...
Cela signifie que tu cries :) (mais fallait le savoir)

Tes champs, dans tes tables, ils sont de quel type ?
Certinement texte aussi.
Ce ne sont donc pas des dates.
Et ceci, quel que soit ton masque de saisie (qui concerne la saisie, et pas
l'import)
Donc, en fait, tu cherches à manipuler des données Texte, comme s'il s'agissait
de dates.
Tu as donc plusieurs soutions à ta disposition :
1/ Transformer tes textes en dates dans de nouveaux champs et/ou tables
2/ Transformer tes textes, à la volée, dans l'expression
3/ Transformer tes textes dans le fichier original

La syntaxe pour récupérer une date à partir de ce que tu as :
SérieDate(Droite([Champ];4);ExtracChaîne([Champ];3;2);Gauche([Champ];2))

Ce qui donnerait en expression :
Age:DiffDate("aaaa";SérieDate(Droite([DATENAIS];4);ExtracChaîne([DATENAIS];3;2);Gauche([DATENAIS];2));SérieDate(Droite([DATEJOUR];4);ExtracChaîne([DATEJOUR];3;2);Gauche([DATEJOUR];2))

Voilà :)

================== > Maxence HUBICHE

MVP Access
Revendeur CaseStudio (http://www.casestudio.fr)
Responsable Access sur http://www.developpez.com
La plus grosse FAQ Access du Web : http://access.developpez.com/faq

Bonjour à tous et à toutes...

J'ai ma base Access, au niveau des données celle-ci importe des
données a
partir d'un fichier Excel.
Mais j'ai un problème sur mes champs "date".
Dans mon fichier Excel j'ai les 2 données en format TEXTE en exemple:
DATEJOUR --> 4111991 ou 19011992
DATENAIS --> 20101923 ou 01081971
Qu'il y ait ou pas dans les dates un "zero" access n'affiche pas de
zéro et de met pas mon champ en 00/00/0000 alors que mes 2 champs ont
un masque de saisie : 00/00/0000;0

Ce problème produit une erreur car de ces 2 champs en découle un champ
"âge" =diffdate("aaaa";[DATENAIS];[DATEJOUR])

En résumé : Problème d'affichage des 2 champs date si on resaisie la
date a la main tout refonctionne.









Avatar
CLARA
Tu as raison Maxence dans ma table ces champs sont en type de données Texte.
J'ai mis ce type de données car dans mon fichier Excel ces mêmes champs sont
également en format texte.

Je pensais faire bien :-( car de souvenir je crois que l'importation se
passe correctement.

Merci d'avance


Hello CLARA,

C'est bien ce que je disais Clara ...
Tu mélanges plusieurs choses, ou alors, tu n'utilises pas la bonne terminologie,
ce qui nous induit en erreur !
Le format touche l'aspect visuel.
Moi, je te parle de type de données.
Dans la table, si tu l'ouvres en mode création, tu as une colonne de types
de données.
Ce ne doit pas être un type Date/Heure sur tes champs.

Ca, c'est le premier point !
Et le plus important.
Car ce n'est que lorsqu'on saura ce que tu as qu'on pourra faire quelque
chose pour toi.


================== > Maxence HUBICHE

MVP Access
Revendeur CaseStudio (http://www.casestudio.fr)
Responsable Access sur http://www.developpez.com
La plus grosse FAQ Access du Web : http://access.developpez.com/faq

Désolé pour les majuscules ...

Je précise comme énoncé dans ma 1ère question que mes champs dans la
table sont en format date abrégé et on masque de saisie.

Je n'ai pas de problème sur mon calcul de l'age, le problème vient sur
l'affichage/compréhension des champs date jour et date naissance
récupérés des champs texte dans Excel.

Voilà merci d'avance.


Hello CLARA,
Avant tout, écrire en majuscule est impoli sur Internet...
Cela signifie que tu cries :) (mais fallait le savoir)
Tes champs, dans tes tables, ils sont de quel type ?
Certinement texte aussi.
Ce ne sont donc pas des dates.
Et ceci, quel que soit ton masque de saisie (qui concerne la saisie,
et pas
l'import)
Donc, en fait, tu cherches à manipuler des données Texte, comme s'il
s'agissait
de dates.
Tu as donc plusieurs soutions à ta disposition :
1/ Transformer tes textes en dates dans de nouveaux champs et/ou
tables
2/ Transformer tes textes, à la volée, dans l'expression
3/ Transformer tes textes dans le fichier original
La syntaxe pour récupérer une date à partir de ce que tu as :
SérieDate(Droite([Champ];4);ExtracChaîne([Champ];3;2);Gauche([Champ];
2))

Ce qui donnerait en expression :
Age:DiffDate("aaaa";SérieDate(Droite([DATENAIS];4);ExtracChaîne([DATE
NAIS];3;2);Gauche([DATENAIS];2));SérieDate(Droite([DATEJOUR];4);Extra
cChaîne([DATEJOUR];3;2);Gauche([DATEJOUR];2))
Voilà :)

================== > >> Maxence HUBICHE
MVP Access
Revendeur CaseStudio (http://www.casestudio.fr)
Responsable Access sur http://www.developpez.com
La plus grosse FAQ Access du Web : http://access.developpez.com/faq
Bonjour à tous et à toutes...

J'ai ma base Access, au niveau des données celle-ci importe des
données a
partir d'un fichier Excel.
Mais j'ai un problème sur mes champs "date".
Dans mon fichier Excel j'ai les 2 données en format TEXTE en
exemple:
DATEJOUR --> 4111991 ou 19011992
DATENAIS --> 20101923 ou 01081971
Qu'il y ait ou pas dans les dates un "zero" access n'affiche pas de
zéro et de met pas mon champ en 00/00/0000 alors que mes 2 champs
ont
un masque de saisie : 00/00/0000;0
Ce problème produit une erreur car de ces 2 champs en découle un
champ "âge" =diffdate("aaaa";[DATENAIS];[DATEJOUR])

En résumé : Problème d'affichage des 2 champs date si on resaisie la
date a la main tout refonctionne.