OVH Cloud OVH Cloud

Donnees Date incompatibles

33 réponses
Avatar
dadpub
Bonjour,

Voulant trouver le prochain anniversaire parmi mes contacts, j'ai cette
requette :

SELECT TOP 1 TContact.Contact, TContact.DDN,
DateSerial(Year(Now()),Month([DDN]),Day([DDN])) AS Anniversaire
FROM TContact
WHERE ((DateSerial(Year(Now()),Month([DDN]),Day([DDN])))>Date()));

Sans le critere (where) ça marche, mais avec le critere j'ai ce message
d'erreur :
"Type de données incompatible dans l'expression du critère"
Or il s'agit bien de donnees de Type Date ! (DDN=Date De Naissance)
Ou est le bug ?

Merci.

10 réponses

1 2 3 4
Avatar
Eric
Bonjour Pierre & Jessy,

Effectivement, moi non plus je n'y ai pas songé. Mais ce qui me chagrine
c'est que cette erreur aurait du s'afficher même s'il n'a pas de clause
Order By dans sa requête. Qu'en pensez-vous ? Car dadpub dit :

SELECT TOP 1 Contact, DDN
FROM TContact
WHERE (((DateSerial(Year(Date()),Month([DDN]),Day([DDN])))>Date()))
ORDER BY DateSerial(Year(Date()),Month([DDN]),Day([DDN]));



Je précise que sans le ORDER BY ci-dessus, j'ai pas le message d'erreur type
incompatible, ...




Salut Pierre

Effectivement, je n'y avais pas pensé à ce truc de la valeur nulle...

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



bonjour
oui, mais j'ai fais l'essais hier, j'avais le méme message et pas ce matin
cause, 1 des champs date était Null

--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"Jessy Sempere" a écrit dans le message de news:

Bonjour

Question bête...

TContact est bien une table ???
Ce ne srait pas une requête ? Voir une requête avec regroupement ??

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"dadpub" a écrit dans le message de news:

Voici donc le SQL qui doit fonctionner :

SELECT TOP 1 Contact, DDN
FROM TContact
WHERE (((DateSerial(Year(Date()),Month([DDN]),Day([DDN])))>Date()))
ORDER BY DateSerial(Year(Date()),Month([DDN]),Day([DDN]));
Je précise que sans le ORDER BY ci-dessus, j'ai pas le message d'erreur

type incompatible, mais le résultat est pas bon ; ça renvoie pas le
prochain anniversaire.
En fait le tri se fait sur la clé et c'est faux










--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Avatar
Pierre CFI [mvp]
je pense qu'il y a 1 champ DDN non conforme

--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"Eric" a écrit dans le message de news:

Bonjour Pierre & Jessy,

Effectivement, moi non plus je n'y ai pas songé. Mais ce qui me chagrine
c'est que cette erreur aurait du s'afficher même s'il n'a pas de clause
Order By dans sa requête. Qu'en pensez-vous ? Car dadpub dit :

SELECT TOP 1 Contact, DDN
FROM TContact
WHERE (((DateSerial(Year(Date()),Month([DDN]),Day([DDN])))>Date()))
ORDER BY DateSerial(Year(Date()),Month([DDN]),Day([DDN]));



Je précise que sans le ORDER BY ci-dessus, j'ai pas le message d'erreur
type incompatible, ...




Salut Pierre

Effectivement, je n'y avais pas pensé à ce truc de la valeur nulle...

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



bonjour
oui, mais j'ai fais l'essais hier, j'avais le méme message et pas ce
matin
cause, 1 des champs date était Null

--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"Jessy Sempere" a écrit dans le message de
news:
Bonjour

Question bête...

TContact est bien une table ???
Ce ne srait pas une requête ? Voir une requête avec regroupement ??

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"dadpub" a écrit dans le message de news:

Voici donc le SQL qui doit fonctionner :

SELECT TOP 1 Contact, DDN
FROM TContact
WHERE (((DateSerial(Year(Date()),Month([DDN]),Day([DDN])))>Date()))
ORDER BY DateSerial(Year(Date()),Month([DDN]),Day([DDN]));
Je précise que sans le ORDER BY ci-dessus, j'ai pas le message

d'erreur type incompatible, mais le résultat est pas bon ; ça renvoie
pas le prochain anniversaire.
En fait le tri se fait sur la clé et c'est faux










--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr







Avatar
dadpub
"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
oui, mais j'ai fais l'essais hier, j'avais le méme message et pas ce matin
cause, 1 des champs date était Null


Ce SQL :

SELECT TOP 1 TContact.Contact, TContact.DDN
FROM TContact
WHERE (((TContact.DDN) Is Not Null) AND
((DateSerial(Year(Date()),Month([DDN]),Day([DDN])))>Date()))
ORDER BY DateSerial(Year(Date()),Month([DDN]),Day([DDN]));

... ne marche pas non plus ! ...
J'avais d'ailleurs déjà testé avec is not null et j'ai oublié de vous en
parler ...
@ +

Avatar
dadpub
"Pierre CFI [mvp]" a écrit dans le message de
news:
je pense qu'il y a 1 champ DDN non conforme


Ben je voudrais bien mais mon champs est de type date/heure format abrégé et
les valeurs tapées sont bonnes, pas de 30 février ni de 32 décembre !...
@ +

Avatar
Pierre CFI [mvp]
pas de null ni vide ??

--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"dadpub" a écrit dans le message de news:


"Pierre CFI [mvp]" a écrit dans le message de
news:
je pense qu'il y a 1 champ DDN non conforme


Ben je voudrais bien mais mon champs est de type date/heure format abrégé
et les valeurs tapées sont bonnes, pas de 30 février ni de 32 décembre
!...
@ +





Avatar
dadpub
Salut,

"Pierre CFI [mvp]" a écrit dans le message de
news: %
pas de null ni vide ??


J'ai testé avec une base fictive sans Null ni Vide et c'est pareil, mêmes
problèmes.
Vous n'avez pas donné votre avis sur ma solution qui marche et pourquoi elle
marche !
@ +
Merci.
NB : à mardi ...

Avatar
Eric
Bonjour,

On a tous fait des tests avec la version donnée dans la discussion et
cela fonctionne. (Perso, je suis en Access2000 mais je ne pense pas que
la version d'Access soit en cause)
Que se passe-t-il avec seulement:
WHERE month(DDN)= month(date()) and day(DDN)>day(date())
ORDER BY month(DDN), day(DDN)

{à compléter le Where éventuellement par un And Not IsNull(DDN)}

Quant à ta formule avec le + 7, je n'en vois pas bien l'intérêt hormis
de rendre numérique un champ qui ne l'est pas. Or year(), month() et
day() retournent des integer et dateserial une date (donc un numérique).

Pour situer le problème, il faudrait donner un échantillon
d'enregistrements comme je te l'avais proposé.


Salut,

"Pierre CFI [mvp]" a écrit dans le message de
news: %
pas de null ni vide ??


J'ai testé avec une base fictive sans Null ni Vide et c'est pareil, mêmes
problèmes.
Vous n'avez pas donné votre avis sur ma solution qui marche et pourquoi elle
marche !
@ +
Merci.
NB : à mardi ...




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
dadpub
Bonjour,
Voici une base test :
http://cjoint.com/?duiO6BTXmP
Merci.
Avatar
Eric
Bonjour,

Voila ce que j'obtiens avec le code donné dans les fils précédents sur
l'échantillon. Pas mis de critère Not Isnull(ddn) qu'il faudra prévoir:
http://cjoint.com/?dui6lZksgJ

La base avec la requête :
http://cjoint.com/?dui7fAkwlW

Aucun problème ici sous Access2K.

Bonjour,
Voici une base test :
http://cjoint.com/?duiO6BTXmP
Merci.





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
dadpub
Voici ce que ça donne avec des Dates null :
http://cjoint.com/?dukOJRzrOK
Merci.
1 2 3 4