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

comparaison de dates dans un Dcount

7 réponses
Avatar
lecrol
Bonjour,
Je n'arrive pas à faire fonctionner correctement une comparaison de dates
dans une instruction Dcount.
***
Chaine = Chaine & " [Date de vente] >=" & "#" & Me![Datdebut] & "# AND " &
"[Date de vente] <=" & "#" & Me![Datfin] & "#"
Nbrtotchoix = DCount("[NouvCode article]", "R_Ventes", Chaine)
***
Je n'ai pas d'erreur de syntaxe mais un résultat parfois bon, parfois égal à
0 et d'autres fois, enfin, égal au nombre total de records! Il ya quelque
part un schmilblick que je ne devine pas. Je pécise que mes dates sont toutes
de format abrégé.
Merci d'avance de vos lumières avisées et généreuses.
Roland
PS Je peux envoyer une réduction de ma base si besoin est

7 réponses

Avatar
Gloops
Bonjour,

Réalises-tu qu'il manque plein de trucs pour qu'on sache ce que va f aire
ton code ?

- qu'y a-t-il dans chaine avant l'exécution de la première inst ruction ?
- qu'y a-t-il dans les champs de dates ? (d'accord, des dates, mais sous
quelles formes ?)
- ça aiderait bien si on savait ce qu'il y a dans R_Ventes

Regarde voir si ceci t'aide :

http://mhubiche.developpez.com/vba/fiches/comprendre/fonctions/datetime/
_____________________________________
lecrol a écrit, le 23/06/2008 19:08 :
Bonjour,
Je n'arrive pas à faire fonctionner correctement une comparaison d e dates
dans une instruction Dcount.
***
Chaine = Chaine & " [Date de vente] >=" & "#" & Me![Datdebut] & "# AND " &
"[Date de vente] <=" & "#" & Me![Datfin] & "#"
Nbrtotchoix = DCount("[NouvCode article]", "R_Ventes", Chaine)
***
Je n'ai pas d'erreur de syntaxe mais un résultat parfois bon, parf ois égal à
0 et d'autres fois, enfin, égal au nombre total de records! Il ya quelque
part un schmilblick que je ne devine pas. Je pécise que mes dates sont toutes
de format abrégé.
Merci d'avance de vos lumières avisées et généreuse s.
Roland
PS Je peux envoyer une réduction de ma base si besoin est


Avatar
CErnst
J'ai pour règle de formater la date :

Chaine = Chaine & " [Date de vente] BETWEEN #" &
format$(Me![Datdebut],"mm/dd/yy") & "# AND #" &
format$(Me![Datfin],"mm/dd/yy") & "#"




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

Bonjour,
Je n'arrive pas à faire fonctionner correctement une comparaison de dates
dans une instruction Dcount.
***
Chaine = Chaine & " [Date de vente] >=" & "#" & Me![Datdebut] & "# AND " &
"[Date de vente] <=" & "#" & Me![Datfin] & "#"
Nbrtotchoix = DCount("[NouvCode article]", "R_Ventes", Chaine)
***
Je n'ai pas d'erreur de syntaxe mais un résultat parfois bon, parfois égal
à
0 et d'autres fois, enfin, égal au nombre total de records! Il ya quelque
part un schmilblick que je ne devine pas. Je pécise que mes dates sont
toutes
de format abrégé.
Merci d'avance de vos lumières avisées et généreuses.
Roland
PS Je peux envoyer une réduction de ma base si besoin est


Avatar
Gloops
Bonjour,

CErnst a écrit, le 24/06/2008 12:22 :
J'ai pour règle de formater la date :

Chaine = Chaine & " [Date de vente] BETWEEN #" &
format$(Me![Datdebut],"mm/dd/yy") & "# AND #" &
format$(Me![Datfin],"mm/dd/yy") & "#"



Oui, sur une base française, ça doit bien aider.

Sur une base internationale, attention à se référer au bon format.

J'ai fini par passer tout à la même moulinette ;

de mémoire :

"DateSerial(Year(DatDebut), Month(DatDebut), Day(DatDebut) <
DateSerial(" & Year(DateDeVente) & ", " & Month(DateDeVente) & ", " &
Day(DateDeVente) & ")"

et pareil ensuite pour la date de fin.

(mouais, je crois que j'ai inversé les syntaxes, c'est DateDeVente qui
est dans la base et DatDebut dans un champ de saisie, j'ai fait comme si
c'était l'inverse ; promis, si vraiment quelqu'un ne comprend pas dans
les jours qui viennent, je le referai).

Ah, c'est très lourd, certes.
Une fois que j'ai fait comme ça, je n'ai plus jamais entendu que les
Tchèques avaient un contrôle de date qui fonctionnait à partir du 1 3
mais pas du 1er au 12, ou l'inverse.

En effet, si une date fournie n'existe pas, les deux premiers termes
sont inversés (quel que soit l'avis de l'utilisateur sur la question, e t
même si il n'en a pas) pour obtenir une nouvelle date qui existe.

Ce qui donne "fort logiquement" la suite de dates suivante :

05/01/2008 5 janvier 2008
05/02/2008 5 février 2008
05/03/2008 5 mars 2008
05/04/2008 5 avril 2008
05/05/2008 5 mai 2008
05/06/2008 5 juin 2008
05/07/2008 5 juillet 2008
05/08/2008 5 août 2008
05/09/2008 5 septembre 2008
05/10/2008 5 octobre 2008
05/11/2008 5 novembre 2008
05/12/2008 5 décembre 2008
05/13/2008 13 mai 2008
05/14/2008 14 mai 2008


et c'est pareil si l'expéditeur s'est exprimé en date au format angla is,
et que ces dates allaient du premier au 14 mai.

Alors que DateSerial(2008, 5, 1) ne peut faire que premier mai 2008,
quelle que soit la culture dans laquelle on l'exprime -tout au plus ça
peut ne pas être la fête du travail dans un pays ou un autre, mais ce
sera le premier jour du cinquième mois de l'année 2008, si tant est
qu'on utilise le même calendrier (il y a des fonctions pour le support
du calendrier grégorien, mais ça c'est une autre question).
Avatar
3stone
Salut Gloobs,

"Gloops"
CErnst a écrit, le 24/06/2008 12:22 :
J'ai pour règle de formater la date :

Chaine = Chaine & " [Date de vente] BETWEEN #" &
format$(Me![Datdebut],"mm/dd/yy") & "# AND #" &
format$(Me![Datfin],"mm/dd/yy") & "#"



| Oui, sur une base française, ça doit bien aider.
|
| Sur une base internationale, attention à se référer au bon format.


Le *bon* format est le format US, il n'y en a pas d'autre ;-))



| J'ai fini par passer tout à la même moulinette ;
| de mémoire :

|"DateSerial(Year(DatDebut), Month(DatDebut), Day(DatDebut) <
| DateSerial(" & Year(DateDeVente) & ", " & Month(DateDeVente) & ", " &
| Day(DateDeVente) & ")"


Bien lourd et... inutile pour en venir à... une date US ;-)
De plus, si tu attribues le tout à une variable Date, tu te retrouve
exactement devant le même problème lors de la comparaison,
car la date sera présentée au format défini dans les paramètres
régionaux :-(

DateSerial() est parfait, mais pour créer une date valide au départ de variables
ou champs différents...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
lecrol
Youuupss ! Je m'excuse du retard à revenir sur ce forum, mais j'étais loin !
A présent, me v'la revenu. Je suis super content et impressionné de ces 5
réponses Mais le débutant que je suis s'en retrouve un peu... débordé !
Finalement, quelle syntaxe dois-je utiliser ? En attendnat votre verdict,
voici ce que je peux vous dire pour expliciter un peu plus ma demande
sur la tables "ventes", un champ "date de vente" format date abrégé
sur le formulaire de saisie; les deux dates [datedebut] et [datfin] au même
format La requete R_ventes croise la table "Ventes" et la table "stocks" sur
le code article pour ajouter prix, libellé, etc..
Le tout consiste à filtrer les ventes sur une période donnée.
A votre disposition pour toute autre précision nécessaire.
Merci encore
Roland

"lecrol" wrote:
$$
Bonjour,
Je n'arrive pas à faire fonctionner correctement une comparaison de dates
dans une instruction Dcount.
***
Chaine = Chaine & " [Date de vente] >=" & "#" & Me![Datdebut] & "# AND " &
"[Date de vente] <=" & "#" & Me![Datfin] & "#"
Nbrtotchoix = DCount("[NouvCode article]", "R_Ventes", Chaine)
***
Je n'ai pas d'erreur de syntaxe mais un résultat parfois bon, parfois égal à
0 et d'autres fois, enfin, égal au nombre total de records! Il ya quelque
part un schmilblick que je ne devine pas. Je pécise que mes dates sont toutes
de format abrégé.
Merci d'avance de vos lumières avisées et généreuses.
Roland
PS Je peux envoyer une réduction de ma base si besoin est


Avatar
lecrol
Hello !! Youppie !! J'ai essayé la syntaxe proposée par Cernst. Et ça
MAAAAARCHE !!!
Le seul "piti problèm" qui me reste est que cet ignare de access me fait une
erreur si je lui dis "31/06/08" ! Quelle insolence ! Y'aurait il un moyen
pour éviter ce piège des derniers jours du mois, 30 ou 31 ? Ne pourrait-on,
par exemple, tapper "fin juin" (rires..)
Merci encore et encore et ... félicitations
Roland
------------------------------------------------------------
J'ai pour règle de formater la date :

Chaine = Chaine & " [Date de vente] BETWEEN #" &
format$(Me![Datdebut],"mm/dd/yy") & "# AND #" &
format$(Me![Datfin],"mm/dd/yy") & "#"




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

> Bonjour,
> Je n'arrive pas à faire fonctionner correctement une comparaison de dates
> dans une instruction Dcount.
> ***
> Chaine = Chaine & " [Date de vente] >=" & "#" & Me![Datdebut] & "# AND " &
> "[Date de vente] <=" & "#" & Me![Datfin] & "#"
> Nbrtotchoix = DCount("[NouvCode article]", "R_Ventes", Chaine)
> ***
> Je n'ai pas d'erreur de syntaxe mais un résultat parfois bon, parfois égal
> à
> 0 et d'autres fois, enfin, égal au nombre total de records! Il ya quelque
> part un schmilblick que je ne devine pas. Je pécise que mes dates sont
> toutes
> de format abrégé.
> Merci d'avance de vos lumières avisées et généreuses.
> Roland
> PS Je peux envoyer une réduction de ma base si besoin est





Avatar
Gloops
[Tant de réponses, laquelle choisir ?]

Salut,

A ce que je comprends, tu n'en es pas au point d'envisager de dévelo pper
pour un parc international.

Donc, la réponse de CErnst devrait très bien faire l'affaire.

Comme il y a beaucoup de monde à lire et chercher dans les newsgroup s
j'ai essayé de faire en sorte que le plus d'aspects possibles de la
question soient couverts, mais peut-être ai-je fait trop de zèl e.

Bien entendu, ne néglige pas de faire quelques tests, il n'y a que c omme
ça que tu t'assures qu'il n'y a pas une erreur quelque part dans la
chaîne, soit dans le fait d'avoir bien compris ta question, soit dan s la
rédaction de la réponse (ça ne se voit pas, m'enfin bon ...), soit
dans la compréhension que tu en as eue ...

_____________________________________
lecrol a écrit, le 25/06/2008 18:52 :
Youuupss ! Je m'excuse du retard à revenir sur ce forum, mais j'à ©tais loin !
A présent, me v'la revenu. Je suis super content et impressionnà © de ces 5
réponses Mais le débutant que je suis s'en retrouve un peu... débordé !
Finalement, quelle syntaxe dois-je utiliser ? En attendnat votre verdic t,
voici ce que je peux vous dire pour expliciter un peu plus ma demande
sur la tables "ventes", un champ "date de vente" format date abré gé
sur le formulaire de saisie; les deux dates [datedebut] et [datfin] au même
format La requete R_ventes croise la table "Ventes" et la table "stocks " sur
le code article pour ajouter prix, libellé, etc..
Le tout consiste à filtrer les ventes sur une période donnà ©e.
A votre disposition pour toute autre précision nécessaire.
Merci encore
Roland