OVH Cloud OVH Cloud

Acces: Cumul de champas dans une requête

10 réponses
Avatar
Vinz
Bonjour,

J'ai fait une requete qui extrait l'argent dépensée ou encaissée en fonction
des jours.

J'ai donc une colonne "date" et une colonne "argent dépesné ou encaissé".

J'obtiens donc un truc dans le genre:
01/01/2005 - 10
03/01/2005 - 15
05/01/2005 - 7

Notez que les dates, bienque croissantes ne sont pas forcément consécutives,
il peut y avoir des trous.

Ce que je veux: Faire le cumul, au jour le jour (des jours calendaires) de
mes dépense et donc obtenir:
01/01/2005 - 10
02/01/2005 - 10
03/01/2005 - 25
04/01/2005 - 25
05/01/2005 - 31

Il me faut donc toutes les dates et le cumul... Dur dur, je rame, je rame...
A faire que par des requêtes Access et éventuellement du code VBA (je suis
novice en Access, mais suis très bon en Excel VBA mais n'ai jamais appliqué
ça à Access).

Merci de votre aide.

Je reste à disposition pour toute précision.

Vinz

10 réponses

Avatar
3stone
Salut,

"Vinz"
| J'ai fait une requete qui extrait l'argent dépensée ou encaissée en fonction
| des jours.
|
| J'ai donc une colonne "date" et une colonne "argent dépesné ou encaissé".
|
| J'obtiens donc un truc dans le genre:
| 01/01/2005 - 10
| 03/01/2005 - 15
| 05/01/2005 - 7
|
| Notez que les dates, bienque croissantes ne sont pas forcément consécutives,
| il peut y avoir des trous.
|
| Ce que je veux: Faire le cumul, au jour le jour (des jours calendaires) de
| mes dépense et donc obtenir:
| 01/01/2005 - 10
| 02/01/2005 - 10
| 03/01/2005 - 25
| 04/01/2005 - 25
| 05/01/2005 - 31
|
| Il me faut donc toutes les dates et le cumul... Dur dur, je rame, je rame...
| A faire que par des requêtes Access et éventuellement du code VBA (je suis
| novice en Access, mais suis très bon en Excel VBA mais n'ai jamais appliqué
| ça à Access).

Tu fait un regroupement et tri sur le champ [date] et un Sum sur les "mouvements"


--
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
Vinz
Heu... Non, malheureusement ce n'est pas aussi simple.

Je veux le cumul des champs, même aux dates intermédiaires... Le cumul et
non pas une simple somme!

Merci quand même: une autre idée?




Salut,

"Vinz"
| J'ai fait une requete qui extrait l'argent dépensée ou encaissée en fonction
| des jours.
|
| J'ai donc une colonne "date" et une colonne "argent dépesné ou encaissé".
|
| J'obtiens donc un truc dans le genre:
| 01/01/2005 - 10
| 03/01/2005 - 15
| 05/01/2005 - 7
|
| Notez que les dates, bienque croissantes ne sont pas forcément consécutives,
| il peut y avoir des trous.
|
| Ce que je veux: Faire le cumul, au jour le jour (des jours calendaires) de
| mes dépense et donc obtenir:
| 01/01/2005 - 10
| 02/01/2005 - 10
| 03/01/2005 - 25
| 04/01/2005 - 25
| 05/01/2005 - 31
|
| Il me faut donc toutes les dates et le cumul... Dur dur, je rame, je rame...
| A faire que par des requêtes Access et éventuellement du code VBA (je suis
| novice en Access, mais suis très bon en Excel VBA mais n'ai jamais appliqué
| ça à Access).

Tu fait un regroupement et tri sur le champ [date] et un Sum sur les "mouvements"


--
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
re,

"Vinz"
| Heu... Non, malheureusement ce n'est pas aussi simple.

oui... mal lu...


| Je veux le cumul des champs, même aux dates intermédiaires... Le cumul et
| non pas une simple somme!


Créer un table2 avec la période de dates...
ensuite dans la requête, un champ calculé :

Cumul: Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & DateTable2 )


--
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
Vinz
On semble s'approcher... Merci.

Cependant, ça marche pas encore, c'est pourquoi je pose une autre question.

Ca marche si "LaTable" est une requête? Si "Mouvents", dans cette requête,
est un champ de sommation? (c'est déjà une somme, mon opération serait alors
un cumul de sommes.

Car pour l'instant, il me sort toutes mes dates, mais les cellules à cote,
celles du cumul, resent vides... Oups... Quid?

Merci à toi 3 stone!

Vinz


re,

"Vinz"
| Heu... Non, malheureusement ce n'est pas aussi simple.

oui... mal lu...


| Je veux le cumul des champs, même aux dates intermédiaires... Le cumul et
| non pas une simple somme!


Créer un table2 avec la période de dates...
ensuite dans la requête, un champ calculé :

Cumul: Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & DateTable2 )


--
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
Salut,

"Vinz"
|
| Ca marche si "LaTable" est une requête? Si "Mouvents", dans cette requête,
| est un champ de sommation? (c'est déjà une somme, mon opération serait alors
| un cumul de sommes.
|
| Car pour l'instant, il me sort toutes mes dates, mais les cellules à cote,
| celles du cumul, resent vides... Oups... Quid?


une requête enregistrée, oui !

tu as bien placé le "Nz" ?


--
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
Vinz
Oui, j'ai même essayé sans. Le problème est assez original... Ca marche
presque...

Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & DateTable2 ) ne marche pas
du tout mais:

Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=#" & DateTable2 & "#" ) nmarche
beaucoup mieux!

Cependant, les 5 premiers jours de chaque mois (ma période c'est 2 ans et ça
se produit exactement tous les mois et exactement jours) le cumul renvoyé
est vide...

So? Une interprétation? (à la fois sur cette erreur et sur les # que je
rajoute au pif! pour imiter d'autres exemples)

Merci à la folie!




Salut,

"Vinz"
|
| Ca marche si "LaTable" est une requête? Si "Mouvents", dans cette requête,
| est un champ de sommation? (c'est déjà une somme, mon opération serait alors
| un cumul de sommes.
|
| Car pour l'instant, il me sort toutes mes dates, mais les cellules à cote,
| celles du cumul, resent vides... Oups... Quid?


une requête enregistrée, oui !

tu as bien placé le "Nz" ?


--
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
Vinz
En fait, cela ne se produit qu'une dizaine de mois et ensuite, autours de ces
mêmes dates ça calcule un résultat intérmédiaire qui est faux?!?!?

Le résultat final est bon...

Là je pète les plombs, j'en perds mon latin!

Vinz


Oui, j'ai même essayé sans. Le problème est assez original... Ca marche
presque...

Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & DateTable2 ) ne marche pas
du tout mais:

Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=#" & DateTable2 & "#" ) nmarche
beaucoup mieux!

Cependant, les 5 premiers jours de chaque mois (ma période c'est 2 ans et ça
se produit exactement tous les mois et exactement jours) le cumul renvoyé
est vide...

So? Une interprétation? (à la fois sur cette erreur et sur les # que je
rajoute au pif! pour imiter d'autres exemples)

Merci à la folie!




Salut,

"Vinz"
|
| Ca marche si "LaTable" est une requête? Si "Mouvents", dans cette requête,
| est un champ de sommation? (c'est déjà une somme, mon opération serait alors
| un cumul de sommes.
|
| Car pour l'instant, il me sort toutes mes dates, mais les cellules à cote,
| celles du cumul, resent vides... Oups... Quid?


une requête enregistrée, oui !

tu as bien placé le "Nz" ?


--
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
Salut,

"Vinz"
| Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & DateTable2 ) ne marche pas
| du tout mais:
|
| Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=#" & DateTable2 & "#" ) nmarche
| beaucoup mieux!


Non, en ajoutant les "#" tu *doit* mettre la date au format US!


"[LaDate]<=" & Format(DateTable2;"#mm/jj/aaaa#")


--
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
Vinz
Okok... Mais je pige plus rien sur ma formule!

Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & DateTable2 )
-> ça met que des 0

Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=#" & DateTable2 & "#" )
-> les 12 premières données de chaque moi sont fausses (6 zéros puis 6
données antérieures ou postérieures, puis en 2004 12 données fausses, souvent
antérieures ou postérieures, les calculs ne sont pas farfelus il me ressor
des données qui vont ou ont existé à un moment donné)

Je commence à être persuadé que c'est un problème de date mais comment le
résoudre... En effet, les 12 premiers jours de chaque mois: j'estime que le
chiffre n'est pas innocent, 12 c'est le nombre de mois dans l'année...)

J'ai entré toutes mes dates en jj/mm/aaaa pourtant...

Que faire?

Merci!

Vinz

Salut,

"Vinz"
| Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & DateTable2 ) ne marche pas
| du tout mais:
|
| Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=#" & DateTable2 & "#" ) nmarche
| beaucoup mieux!


Non, en ajoutant les "#" tu *doit* mettre la date au format US!


"[LaDate]<=" & Format(DateTable2;"#mm/jj/aaaa#")


--
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
Salut,

"Vinz"
| Okok... Mais je pige plus rien sur ma formule!
|
| Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & DateTable2 )
| -> ça met que des 0
|
| Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=#" & DateTable2 & "#" )


et pourquoi tu ne l'écris pas comme je te l'indique ?

je t'avais juste donné la fin, mais...

Nz(Dsum("[mouvements]";"LaTable";"[LaDate]<=" & Format(DateTable2;"#mm/jj/aaaa#"))


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