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

Année glissante

5 réponses
Avatar
Douda
Bonjour,

Je cherche =E0 faire un filtre ann=E9e glissante sur un champ pour que
chaque fois que la requ=EAte s'ex=E9cute, elle prenne en compte les douze
derniers mois.

J'ai essay=E9 "Entre Mois(MonChamp)-12 Et Mois(Maintenant())" mais =E7a a
pas l'air de marcher. Aucun message d'erreur, juste aucun
enregistrement alors que j'en ai.

Merci de votre aide.


Nadia

5 réponses

Avatar
Douda
On 16 nov, 13:48, Douda wrote:
Bonjour,

Je cherche à faire un filtre année glissante sur un champ pour que
chaque fois que la requête s'exécute, elle prenne en compte les douze
derniers mois.

J'ai essayé "Entre Mois(MonChamp)-12 Et Mois(Maintenant())" mais ça a
pas l'air de marcher. Aucun message d'erreur, juste aucun
enregistrement alors que j'en ai.

Merci de votre aide.

Nadia



Entre Mois(Maintenant())-12 Et Mois(Maintenant())
Avatar
Douda
On 16 nov, 13:55, Douda wrote:
On 16 nov, 13:48, Douda wrote:



Je viens de comprendre mon erreur, pourquoi Mois()-12 marche pas.

J'ai essayé qqch du genre entre (année(maintenant)-1) et
mois(maintenant) Et année(maintenant) et mois(maintenant) !

> Bonjour,>

> Je cherche à faire un filtre année glissante sur un champ pour que
> chaque fois que la requête s'exécute, elle prenne en compte les dou ze
> derniers mois.

> J'ai essayé "Entre Mois(MonChamp)-12 Et Mois(Maintenant())" mais ça a
> pas l'air de marcher. Aucun message d'erreur, juste aucun
> enregistrement alors que j'en ai.

> Merci de votre aide.

> Nadia

Entre Mois(Maintenant())-12 Et Mois(Maintenant())
Avatar
Gloops
Douda a écrit, le 16/11/2011 13:48 :
Bonjour,

Je cherche à faire un filtre année glissante sur un champ pour que
chaque fois que la requête s'exécute, elle prenne en compte les dou ze
derniers mois.

J'ai essayé "Entre Mois(MonChamp)-12 Et Mois(Maintenant())" mais ça a
pas l'air de marcher. Aucun message d'erreur, juste aucun
enregistrement alors que j'en ai.

Merci de votre aide.


Nadia




Bonjour Nadia,

Comme ça à chaud, je dirais quelque chose comme

DateFiltree >= (Now() - 365) AND DateFiltree <= Now()

Je n'exclue pas qu'il faille un peu formater les dates aux bornes, donc

"DateFiltree >= DateSerial(" & Year(Now() - 365) & ", " & Month(Now() -
365) & ", " & Day(Now() - 365) & ") AND DateFiltree <= DateSerial(" &
Year(Now()) & "," & Month(Now()) & ", " & Day(Now()) & ")"

Je laisse gérer la question de la coupure de ligne liée à la public ation
dans le newsgroup ...

Il est possible aussi que la gymnastique que je viens de proposer avec
DateSerial soit nécessaire sur la date calculée d'il y a un an, mais pas
sur celle d'aujourd'hui.

Comme tu as peut-être compris, j'ai une certaine expérience sur Acces s,
mais je n'ai pas le produit à la maison, donc je réponds de mémoire , je
te laisse tester.
J'ai essayé de faire attention aux fermetures de parenthèses et de
guillemets, dans le bon ordre. C'est au test qu'il se confirme si je me
suis planté ou pas.

Une chose à préciser encore peut-être, ce que j'ai proposé comme requête
prend en charge les 365 derniers jours écoulés, donc un an. Si on veu t
prendre en compte des mois calendaires entiers, alors il faudra mettre
la bonne valeur dans l'argument Day. A priori, ce sera 1, et si on veut
le dernier jour du mois précédent on retire 1.

Donc je fournis des éléments de réflexion, il reste à s'en servir ;)
Avatar
Gloops
Gloops a écrit, le 16/11/2011 15:16 :
A priori, ce sera 1, et si on veut le dernier jour du mois précéden t on
retire 1.



Dernier jour du mois en cours : il y a eu un certain nombre de fils
là-dessus ici il y a quelques années. J'ai oublié la proposition la plus
élégante, alors je retiens juste le principe : évaluer la date du
premier du mois suivant, et en retirer 1.

DtTemp = Now() + 35 'une date quelconque au cours du mois suivant
DernierJourMoisEnCours = DateSerial(Year(DtTemp), Month(DtTemp), 1) - 1

ce qui peut aussi s'exprimer :
DernierJoursMoisEnCours = DateSerial(Year(DtTemp), Month(DtTemp), 0)

En cherchant dans les FAQ on va bien trouver quelque chose de mieux. :)
Avatar
Albéric
Bonjour,

C'est normal : 'mois' retourne un nombre entre 1 et 12.

Quand tu dis les douze derniers mois, pour moi, le 17/11/11, cela veut dire
entre le 1/10/10 et le 31/10/11 inclus.

WHERE ((([Table].[Champ]) Between
DateSerial(Year(Date()),Month(Date())-13,1) And
DateSerial(Year(Date()),Month(Date()),-1)));

Entre SérieDate(Année(Date());Mois(Date())-13;1) Et
SérieDate(Année(Date());Mois(Date());-1)

Cdt

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

Bonjour,

Je cherche à faire un filtre année glissante sur un champ pour que
chaque fois que la requête s'exécute, elle prenne en compte les douze
derniers mois.

J'ai essayé "Entre Mois(MonChamp)-12 Et Mois(Maintenant())" mais ça a
pas l'air de marcher. Aucun message d'erreur, juste aucun
enregistrement alors que j'en ai.

Merci de votre aide.


Nadia