OVH Cloud OVH Cloud

refaire une sélection date

10 réponses
Avatar
jc
Bonjour :-)

J'ai une requête ou j'extrais un mois et une année.
Je voudrais faire une autre requête avec 01/01 et l'année extraite au 31/le
mois extrait/l'année extraite?

Vous allez rire, mais je suis très loin d'y arriver. Très très loin

Merci

10 réponses

Avatar
3stone
Salut,

"jc"
| J'ai une requête ou j'extrais un mois et une année.
| Je voudrais faire une autre requête avec 01/01 et l'année extraite au 31/le
| mois extrait/l'année extraite?


Relus 3 fois, mais toujours pas certain d'avoir compris ;-)

DateSerial(Year(Date());1;1)

DateSerial(Year(Date();Month(Date());1)




| Vous allez rire, mais je suis très loin d'y arriver. Très très loin


et même de l'exprimer :o)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
jc
Merci Pierre.

Je reprends.
Supposons que j'ai un champ qui est datLiv
Je crée un champ dans ma requete qui va être: Mois::mois(datliv) avec le
critère sur ce champ mois mois(date())-1. Je suis en septembre, il me
sélectionne celles du mois précédent.
Je refais l'opération pour l'année:: annee:année([datliv]) avec comme
critère de sélection année(date()).

J'obtiens 8 (numéro du mois et 2005 l'année).

J'obitens bien tous les champs et les sommes recherchées. Maintenant, ce que
je voudrais, c'est faire un cumuil: 01/01/année au 31/mois/année

Si trop hard...enfin incompréhension, je vais procéder autrement..mais celà
me plaisait

merci



"3stone" a écrit dans le message de news:

Salut,

"jc"
| J'ai une requête ou j'extrais un mois et une année.
| Je voudrais faire une autre requête avec 01/01 et l'année extraite au
31/le
| mois extrait/l'année extraite?


Relus 3 fois, mais toujours pas certain d'avoir compris ;-)

DateSerial(Year(Date());1;1)

DateSerial(Year(Date();Month(Date());1)




| Vous allez rire, mais je suis très loin d'y arriver. Très très loin


et même de l'exprimer :o)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw



Avatar
Eric
Bonjour jc,

Fais une requête avec Regroupement (Sigma dans la barre d'outils) sur la
table concernée
1er champ : Qté Totale:[QLIV] - Opération : Somme - Afficher : Coché
2eme champ [DatLiv] - Opération : où - Afficher : Non Coché
Critère sur le 2eme champ : (sur 1 seule ligne)
Entre SérieDate(Année(Date());1;1) Et
SérieDate(Année(Date());Mois(Date())-1;1)

Merci Pierre.

Je reprends.
Supposons que j'ai un champ qui est datLiv
Je crée un champ dans ma requete qui va être: Mois::mois(datliv) avec le
critère sur ce champ mois mois(date())-1. Je suis en septembre, il me
sélectionne celles du mois précédent.
Je refais l'opération pour l'année:: annee:année([datliv]) avec comme
critère de sélection année(date()).

J'obtiens 8 (numéro du mois et 2005 l'année).

J'obitens bien tous les champs et les sommes recherchées. Maintenant, ce que
je voudrais, c'est faire un cumuil: 01/01/année au 31/mois/année

Si trop hard...enfin incompréhension, je vais procéder autrement..mais celà
me plaisait

merci



"3stone" a écrit dans le message de news:


Salut,

"jc"
| J'ai une requête ou j'extrais un mois et une année.
| Je voudrais faire une autre requête avec 01/01 et l'année extraite au
31/le
| mois extrait/l'année extraite?


Relus 3 fois, mais toujours pas certain d'avoir compris ;-)

DateSerial(Year(Date());1;1)

DateSerial(Year(Date();Month(Date());1)




| Vous allez rire, mais je suis très loin d'y arriver. Très très loin


et même de l'exprimer :o)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw







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


Avatar
3stone
Salut,

"Eric"
| SérieDate(Année(Date());Mois(Date())-1;1)

| > critère sur ce champ mois mois(date())-1. Je suis en septembre, il me
| > sélectionne celles du mois précédent.


et si le mois courant est le mois de janvier ??


donc, pour le mois:

month(dateadd("m",-1,Date()))


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
jc
Je sais, là il faut que je mettre une balise.

Merci à tous je vais essayer pour voir si j'ai compris :-)

Sinon, désolé, mais je reviens vous hanter

amitiés

"3stone" a écrit dans le message de news:

Salut,

"Eric"
| SérieDate(Année(Date());Mois(Date())-1;1)

| > critère sur ce champ mois mois(date())-1. Je suis en septembre, il me
| > sélectionne celles du mois précédent.


et si le mois courant est le mois de janvier ??


donc, pour le mois:

month(dateadd("m",-1,Date()))


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw



Avatar
jc
Pourquoi la question qui vexe? Pourquoi tant de haine? :-)

"3stone" a écrit dans le message de news:

Salut,

"Eric"
| SérieDate(Année(Date());Mois(Date())-1;1)

| > critère sur ce champ mois mois(date())-1. Je suis en septembre, il me
| > sélectionne celles du mois précédent.


et si le mois courant est le mois de janvier ??


donc, pour le mois:

month(dateadd("m",-1,Date()))


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw



Avatar
jc
avec toutes mes questions, comment faire alors pour écrire:

Entre 01/01/année et 31/mois/année?

Merci

"jc" a écrit dans le message de news:
43229878$0$25410$
Pourquoi la question qui vexe? Pourquoi tant de haine? :-)

"3stone" a écrit dans le message de news:

Salut,

"Eric"
| SérieDate(Année(Date());Mois(Date())-1;1)

| > critère sur ce champ mois mois(date())-1. Je suis en septembre, il
me
| > sélectionne celles du mois précédent.


et si le mois courant est le mois de janvier ??


donc, pour le mois:

month(dateadd("m",-1,Date()))


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw







Avatar
3stone
"jc"
| Pourquoi la question qui vexe? Pourquoi tant de haine? :-)


Hé ! Ho !!

Il n'y a ni vexation, ni haine ;-(

Je t'avais mis la solution deux lignes plus bas !
(et lue et commentée par Eric)

Tu as des problème de lecteur du news ? tu rate des messages ?


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Eric
Bonjour,

Effectivement dans la solution adaptée de la remarque de Pierre, il y a
un décalage d'1 mois pour ton cumul dans la formule que je te proposais
dès lors que le mois calculé n'est pas Janvier.
Par ex: pour le mois courant on s'arrêtait au 31/07 au lieu du 31/08.

Il doit y avoir plus simple mais ca ne me vient pas à l'esprit. Aussi je
te propose la formule suivante qui teste si le mois courant est Janvier
ou un autre et en fonction définit la date d'arrêt.

C'est sans garantie et sans l'aval des spécialistes ;-)
J'attends d'ailleurs leurs remarques *toujours constructives* ,
{mais après tests, apparemment ca donnerait le résultat escompté !}

En définitive, la formula devient :
Entre SérieDate(Année(Date());1;1) Et
VraiFaux(Mois(Date())>1;SérieDate(Année(Date());Mois(Date());1)-1;SérieDate(Année(Date());Mois(Date());Jour(Date())))

Derriere le 'Et' on peux interpréter comme suit :
Si le rang du mois courant est > à 1 alors on retient comme date de fin
le 1er jour du mois - 1 jour pour ne pas tenir compte du 1er puisque
j'utilise l'opérateur 'Entre' qui comptabilise les bornes inf et sup
(dans ton cas on ne doit pas prendre la borne sup, donc on enlève 1
jour. Ceci permet de faire déterminer automatiquement le rang du dernier
jour du mois à prendre.)
Sinon, on retient, pour le jour, comme borne sup le jour du calcul.

Ainsi, si on est le 09/01/05, la borne sup sera le 09/01/05.

Mais si on est le 10/09/05 alors la borne sup sera le 31/08/05
|SérieDate(Année(Date());Mois(Date());1) ---> 01/09/05
|SérieDate(Année(Date());Mois(Date());1) - 1 ---> 31/08/05

PS : il t'est possible de forcer la date de fin en Janvier au 31. Pour
cela, tu remplaces Jour(Date()) par 31

Voila, j'espère qu'il n'y aura plus de problème.



--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
jc
Ne riez pas, je pense avoir compris.
Je teste le mois.

%Merci encore et très, mais très bonne journée à vous deux.

Bye Bye

"3stone" a écrit dans le message de news:
%

"jc"
| Pourquoi la question qui vexe? Pourquoi tant de haine? :-)


Hé ! Ho !!

Il n'y a ni vexation, ni haine ;-(

Je t'avais mis la solution deux lignes plus bas !
(et lue et commentée par Eric)

Tu as des problème de lecteur du news ? tu rate des messages ?


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw