Critères sous Access

Critères sous Access - Logiciels - Windows & Software

Marsh Posté le 15-11-2006 à 19:20:24    

Bonsoir,
 
sous access j'utilise avec bonheur le critère ">Maintenant()-365" qui me permet de retenir un CA sur une année glissante.
Maintenant j'aimerais faire la même chose mais pour année précédente et la c'est la galère je n'arrive pas à trouver le bon critère.
CAD "?? [<-1095]-[<-365]
Si une ame charitable pouvait m'aider.
 
Merci d'avance


Message édité par jclaudej le 15-11-2006 à 19:20:49
Reply

Marsh Posté le 15-11-2006 à 19:20:24   

Reply

Marsh Posté le 15-11-2006 à 20:58:06    

De mémoire il me semble que c'est diffdate ou une fonction comme ca.
Je vais zieuter et reposte si je trouve.
 
Cordialement.

Reply

Marsh Posté le 15-11-2006 à 21:04:33    

Non il s'agit de AjDate :
AjDate(interval; number; date)
 
Donc dans ton cas cela serait :
AjDate("yyyy";-1;date())
"yyyy" = Que tu vas calculer sur l'année, pour retrancher des mois par ex on aurait mis "m"
-1 = que tu vas retrancher d'une année, pour deux ans -2 etc.
date() = la date du jour systeme.
 
 
DiffDate («interval»; «date1»; «date2»; «firstweekday»; «firstweek»)  <(--- Cette fonction est pour calculer une difference entre deux dates, en années, mois, heures etc. en fonction de ce que tu mets dans interval.
 
Cordialement.


Message édité par SuppotDeSaTante le 15-11-2006 à 21:07:05

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 15-11-2006 à 21:20:51    

Donc dans mon cas j'écris :
AjDate(365;-730;Maintenant)
 
365 correspond à la plage de jours recherchée
-730 correspond au jour de départ
Maintenant correspond au dernier enregistrements
 
Est ce que cela vous semble correct ?
 
Merci d'avance

Reply

Marsh Posté le 15-11-2006 à 21:25:53    

Pas du tout lol
 
Je l'ai mis l'exemple pour ton cas.
 

Citation :

Donc dans ton cas cela serait :  
AjDate("yyyy";-1;date())  
"yyyy" = Que tu vas calculer sur l'année, pour retrancher des mois par ex on aurait mis "m"  
-1 = que tu vas retrancher d'une année, pour deux ans -2 etc.  
date() = la date du jour systeme.


 
AjDate("yyyy";-1;date())
 
Ca c'est pour avoir l'année derniere, puisque date() renvoit la date du jour.
Expose peut etre plus ton probleme je n'ai peut etre pas tout compris.
 
 
Edit :
AjDate(interval; number; date)
 
Interval : c'est une expression qui va definir si ton calcul se fait sur l'année, le mois, le jour, les heures etc.
Pour les années, on met "yyyy" pour les mois on met "m" etc. et non pas 365
 
number : c'est le nombre que tu vas ajouter ou soustraire a la date. Donc si tu bases ton calcul sur l'année, -1 te reneverra l'annee derniere, si tu mets -2 l'année N-2 etc. Si ton calcul se base sur les mois (interval = "m" ) et que tu mets -1, ca renverra le mois precedent
 
Date : est une date. ecrit soit #jj/mm/aaaa# (ex : #31/12/2006#) soit une reference à une date (forms("menu" )("datejour" ) si tu as un formulaire nommé menu avec une zone de saisie de date nommée datejour). Dans mon exemple je mets date() car cette fonction renvois la date du jour. Donc aujourdhui elle renvoit 15/11/2006 et demain elle renverra 16/11/2006 etc.
 
 
Donc AjDate("yyyy";-1;date()) renvoit 15/11/2005
AjDate("yyyy";-2;date()) renvoit 15/11/2004 etc.


Message édité par SuppotDeSaTante le 15-11-2006 à 21:36:25

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 15-11-2006 à 21:37:49    

Bonsoir,
Est-ce qu'il ne voudrait pas simplement quelque chose qui lui donne la plage glissante de l'année -2 donc en gros :
 
> Maintenant()-730 and < Maintenant()-365
Cordialement

Reply

Marsh Posté le 15-11-2006 à 21:42:22    

Bonsoir
oui seniorpapou, le probléme du -730 c'est que 2004 ou 2008 est bisextile...  
donc ca ne marchera pas sur le long terme... on pourrait mettre 731 sur ce cas mais  lorsque la fourchette ici en contient une et l'année prochaine sur du N-2 non ca ne serait plus bon en fonction du mois sur lequel on est positionné.
Alors que si on joue sur les jours et mois fixe et qu'on enleve deux a 2006 comme 2007 on retombe toujours sur le meme jour... Vois tu ?
 
maintenant() -730 en mi fevrier 2006 est different de AjDate("yyyy";-1;date())  où date() = 15/02/2006
 
donc pour l'histoire de la fourchette, pour etre sur de ne pas etre biaisé par une année bisextile, on pourait mettre :
 
>AjDate("yyyy";-2;date()) and <AjDate("yyyy";-1;date())
 
et en 2008 ca marchera toujours :d car en 2008 le 01/06/2008 -730 jours ne sera pas le 01/06/2006
 
EDIT 12 : j'espere avoir ete clair... lol


Message édité par SuppotDeSaTante le 15-11-2006 à 21:49:33

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 15-11-2006 à 22:02:13    

Re,
Tout à fait en phase avec toi. Il y a peut-être aussi un pb aux limites dans le style <=   ou >= , mais mes yeux se ferment et je n'ai pas le courage d'y réfléchir ce soir.
Bonne nuit

Reply

Marsh Posté le 16-11-2006 à 14:08:10    

Merci à vous tous pour votre aide précieuse  :)  
J'essayes des que possible

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed