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

Comment calculer une moyenne par enregistrement?

18 réponses
Avatar
StageBF
Suis-je si nul que ça? Question basique! Comment faire?

Je tente tout simplement de calculer une moyenne non pas par colonne mais
par enregistrement! Exemple : J'ai 4 champs : note1, note2, note3 et
MoyenneDesNotes, dans les 3 premiers champs il y a des valeurs et je veux que
la moyenne soit stockée dans mon champ MoyenneDesNotes, chaque enregistrement
a des notes différentes donc chaque enregistrement a une moyenne différente,
ça l'air foutrement compliqué avec Access? Je me trompe?

Donc je veux que ma moyenne soit stocké pour une utilisation ultérieure donc
je ne peux pas passer par un champ calculé via une requête sélection et non
plus par un Source Contrôle dans un formulaire. Donc comment faire? Et
évidemment je dois tenir compte des valeur Null car sinon ça faussera le
calcul.

Le VBA? Je m'y connais pas beaucoup en prog, je comprend les structures
propres aux langages mais la syntaxe me fait défaut! Alors si vous avez des
soluces, bien veillez à ce qu'elles soient complètes et faisables avec Access
2003!

Merci et Salutations!

10 réponses

1 2
Avatar
ze_titi
Bonjour,

je ne comprends pas pourquoi tu ne peux pas passer par un Source Contrôle...

Pour calculer ta moyenne en tenant compte des valeurs Null, le Source
Contrôle de MoyenneDesNotes sera :

=(nz(note1;0)+nz(note2;0)+nz(Note3;0))/(IIf(isnull(note1);0;1)+IIf(isnull(note2);0;1)+IIf(isnull(note3);0;1))

SI j'ai bien compris tes explications, ça devrait fonctionner...

Merci de nous tenir informés !
--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Suis-je si nul que ça? Question basique! Comment faire?

Je tente tout simplement de calculer une moyenne non pas par colonne mais
par enregistrement! Exemple : J'ai 4 champs : note1, note2, note3 et
MoyenneDesNotes, dans les 3 premiers champs il y a des valeurs et je veux que
la moyenne soit stockée dans mon champ MoyenneDesNotes, chaque enregistrement
a des notes différentes donc chaque enregistrement a une moyenne différente,
ça l'air foutrement compliqué avec Access? Je me trompe?

Donc je veux que ma moyenne soit stocké pour une utilisation ultérieure donc
je ne peux pas passer par un champ calculé via une requête sélection et non
plus par un Source Contrôle dans un formulaire. Donc comment faire? Et
évidemment je dois tenir compte des valeur Null car sinon ça faussera le
calcul.

Le VBA? Je m'y connais pas beaucoup en prog, je comprend les structures
propres aux langages mais la syntaxe me fait défaut! Alors si vous avez des
soluces, bien veillez à ce qu'elles soient complètes et faisables avec Access
2003!

Merci et Salutations!


Avatar
Jessy Sempere [MVP]
Bonjour

Il n'est pas conseiller de stocker un champ calculer...
Enfin, il te suffit d'utiliser une requête de mise à jour du style :
UPDATE taTable SET taTable.MoyenneDesNotes =
(nz([Note1],0)+nz([Note2],0)+nz([Note3],0))/(IIf(IsNull([Note1]),0,1)+IIf(IsNull([Note2]),0,1)+IIf(IsNull([Note3]),0,1));

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
en cours de migration vers : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------

"StageBF" a écrit dans le message de
news:
Suis-je si nul que ça? Question basique! Comment faire?

Je tente tout simplement de calculer une moyenne non pas par colonne mais
par enregistrement! Exemple : J'ai 4 champs : note1, note2, note3 et
MoyenneDesNotes, dans les 3 premiers champs il y a des valeurs et je veux
que
la moyenne soit stockée dans mon champ MoyenneDesNotes, chaque
enregistrement
a des notes différentes donc chaque enregistrement a une moyenne
différente,
ça l'air foutrement compliqué avec Access? Je me trompe?

Donc je veux que ma moyenne soit stocké pour une utilisation ultérieure
donc
je ne peux pas passer par un champ calculé via une requête sélection et
non
plus par un Source Contrôle dans un formulaire. Donc comment faire? Et
évidemment je dois tenir compte des valeur Null car sinon ça faussera le
calcul.

Le VBA? Je m'y connais pas beaucoup en prog, je comprend les structures
propres aux langages mais la syntaxe me fait défaut! Alors si vous avez
des
soluces, bien veillez à ce qu'elles soient complètes et faisables avec
Access
2003!

Merci et Salutations!


Avatar
StageBF
Merci Merci Merci, finalement ça fonctionne vachement bien!!! Mais...(il y a
toujours un mais...) hum comment je fais pour pour que par défaut dans la
case MoyenneDesNotes n'affiche pas #Erreur quand il n'y a pas de valeurs
entrées dans note1, note2 ou note3?

Merci de votre promptitude!

Salutations!


Bonjour,

je ne comprends pas pourquoi tu ne peux pas passer par un Source Contrôle...

Pour calculer ta moyenne en tenant compte des valeurs Null, le Source
Contrôle de MoyenneDesNotes sera :

=(nz(note1;0)+nz(note2;0)+nz(Note3;0))/(IIf(isnull(note1);0;1)+IIf(isnull(note2);0;1)+IIf(isnull(note3);0;1))

SI j'ai bien compris tes explications, ça devrait fonctionner...

Merci de nous tenir informés !
--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Suis-je si nul que ça? Question basique! Comment faire?

Je tente tout simplement de calculer une moyenne non pas par colonne mais
par enregistrement! Exemple : J'ai 4 champs : note1, note2, note3 et
MoyenneDesNotes, dans les 3 premiers champs il y a des valeurs et je veux que
la moyenne soit stockée dans mon champ MoyenneDesNotes, chaque enregistrement
a des notes différentes donc chaque enregistrement a une moyenne différente,
ça l'air foutrement compliqué avec Access? Je me trompe?

Donc je veux que ma moyenne soit stocké pour une utilisation ultérieure donc
je ne peux pas passer par un champ calculé via une requête sélection et non
plus par un Source Contrôle dans un formulaire. Donc comment faire? Et
évidemment je dois tenir compte des valeur Null car sinon ça faussera le
calcul.

Le VBA? Je m'y connais pas beaucoup en prog, je comprend les structures
propres aux langages mais la syntaxe me fait défaut! Alors si vous avez des
soluces, bien veillez à ce qu'elles soient complètes et faisables avec Access
2003!

Merci et Salutations!




Avatar
ze_titi
=iif(iserror((nz(cdbl(note1);0)+nz(cdbl(note2);0)+nz(cdbl(Note3);0))/(IIf(isnull(note1);0;1)+IIf(isnull(note2);0;1)+IIf(isnull(note3);0;1)));"";(nz(cdbl(note1);0)+nz(cdbl(note2);0)+nz(cdbl(Note3);0))/(IIf(isnull(note1);0;1)+IIf(isnull(note2);0;1)+IIf(isnull(note3);0;1)))

C'est long, lourd, il y a certainement moyen de faire mieux mais ça doit
fonctionner...


--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Merci Merci Merci, finalement ça fonctionne vachement bien!!! Mais...(il y a
toujours un mais...) hum comment je fais pour pour que par défaut dans la
case MoyenneDesNotes n'affiche pas #Erreur quand il n'y a pas de valeurs
entrées dans note1, note2 ou note3?

Merci de votre promptitude!

Salutations!


Bonjour,

je ne comprends pas pourquoi tu ne peux pas passer par un Source Contrôle...

Pour calculer ta moyenne en tenant compte des valeurs Null, le Source
Contrôle de MoyenneDesNotes sera :

=(nz(note1;0)+nz(note2;0)+nz(Note3;0))/(IIf(isnull(note1);0;1)+IIf(isnull(note2);0;1)+IIf(isnull(note3);0;1))

SI j'ai bien compris tes explications, ça devrait fonctionner...

Merci de nous tenir informés !
--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Suis-je si nul que ça? Question basique! Comment faire?

Je tente tout simplement de calculer une moyenne non pas par colonne mais
par enregistrement! Exemple : J'ai 4 champs : note1, note2, note3 et
MoyenneDesNotes, dans les 3 premiers champs il y a des valeurs et je veux que
la moyenne soit stockée dans mon champ MoyenneDesNotes, chaque enregistrement
a des notes différentes donc chaque enregistrement a une moyenne différente,
ça l'air foutrement compliqué avec Access? Je me trompe?

Donc je veux que ma moyenne soit stocké pour une utilisation ultérieure donc
je ne peux pas passer par un champ calculé via une requête sélection et non
plus par un Source Contrôle dans un formulaire. Donc comment faire? Et
évidemment je dois tenir compte des valeur Null car sinon ça faussera le
calcul.

Le VBA? Je m'y connais pas beaucoup en prog, je comprend les structures
propres aux langages mais la syntaxe me fait défaut! Alors si vous avez des
soluces, bien veillez à ce qu'elles soient complètes et faisables avec Access
2003!

Merci et Salutations!






Avatar
StageBF
J'ai tenté cette formule, j'ai décortiqué chaque parenthèse et tout mais ça
fonctionne pas!

=IIf(iserror((nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1)));"";(nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1))

Il n'y a pas d'autres moyens de faire disparaître ces inesthétiques #erreur
quand il n'y a aucune valeur d'entré dans note1, note2 ou note3?

Merci!
Avatar
Jessy Sempere [MVP]
Bonjour

Essais :
Iff(IsNull(Note1]) And IsNull(Note2]) And
IsNull(Note3]);Null;(nz([Note1],0)+nz([Note2],0)+nz([Note3],0))/(IIf(IsNull([Note1]),0,1)+IIf(IsNull([Note2]),0,1)+IIf(IsNull([Note3]),0,1)))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
en cours de migration vers : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------

"StageBF" a écrit dans le message de
news:
J'ai tenté cette formule, j'ai décortiqué chaque parenthèse et tout mais
ça
fonctionne pas!

=IIf(iserror((nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1)));"";(nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1))

Il n'y a pas d'autres moyens de faire disparaître ces inesthétiques
#erreur
quand il n'y a aucune valeur d'entré dans note1, note2 ou note3?

Merci!


Avatar
StageBF
Allo!

J'ai tout essayé! On m'envoie toujours ce pu.... de message : "La syntaxe de
l'expression entré n'est pas correct" "Vous avez peut-être entré une opérande
sans opérateur"

J'ai tout décortiqué et je vois pas où se trouve l'erreur! Faut dire que moi
et la prog...ça fait deux!

On peut m'aider?


Bonjour

Essais :
Iff(IsNull(Note1]) And IsNull(Note2]) And
IsNull(Note3]);Null;(nz([Note1],0)+nz([Note2],0)+nz([Note3],0))/(IIf(IsNull([Note1]),0,1)+IIf(IsNull([Note2]),0,1)+IIf(IsNull([Note3]),0,1)))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
en cours de migration vers : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------

"StageBF" a écrit dans le message de
news:
J'ai tenté cette formule, j'ai décortiqué chaque parenthèse et tout mais
ça
fonctionne pas!

=IIf(iserror((nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1)));"";(nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1))

Il n'y a pas d'autres moyens de faire disparaître ces inesthétiques
#erreur
quand il n'y a aucune valeur d'entré dans note1, note2 ou note3?

Merci!







Avatar
ze_titi
Iff(IsNull([Note1]) And IsNull([Note2]) And
IsNull([Note3]);Null;(nz(cdbl([Note1]);0)+nz(cdbl([Note2]);0)+nz(cdbl([Note3]);0))/(IIf(IsNull([Note1]);0;1)+IIf(IsNull([Note2]);0;1)+IIf(IsNull([Note3]);0;1)))

--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Allo!

J'ai tout essayé! On m'envoie toujours ce pu.... de message : "La syntaxe de
l'expression entré n'est pas correct" "Vous avez peut-être entré une opérande
sans opérateur"

J'ai tout décortiqué et je vois pas où se trouve l'erreur! Faut dire que moi
et la prog...ça fait deux!

On peut m'aider?


Bonjour

Essais :
Iff(IsNull(Note1]) And IsNull(Note2]) And
IsNull(Note3]);Null;(nz([Note1],0)+nz([Note2],0)+nz([Note3],0))/(IIf(IsNull([Note1]),0,1)+IIf(IsNull([Note2]),0,1)+IIf(IsNull([Note3]),0,1)))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
en cours de migration vers : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------

"StageBF" a écrit dans le message de
news:
J'ai tenté cette formule, j'ai décortiqué chaque parenthèse et tout mais
ça
fonctionne pas!

=IIf(iserror((nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1)));"";(nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1))

Il n'y a pas d'autres moyens de faire disparaître ces inesthétiques
#erreur
quand il n'y a aucune valeur d'entré dans note1, note2 ou note3?

Merci!









Avatar
StageBF
J'aimerais tellement que ça fonctionne mais on me renvoit toujours le message
: "Fonction IIF non définie dans l'expression"

Je crois que je devrais abandonner et endurer ces foutus #error, ça fait dur
mais bon...!


Iff(IsNull([Note1]) And IsNull([Note2]) And
IsNull([Note3]);Null;(nz(cdbl([Note1]);0)+nz(cdbl([Note2]);0)+nz(cdbl([Note3]);0))/(IIf(IsNull([Note1]);0;1)+IIf(IsNull([Note2]);0;1)+IIf(IsNull([Note3]);0;1)))

--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Allo!

J'ai tout essayé! On m'envoie toujours ce pu.... de message : "La syntaxe de
l'expression entré n'est pas correct" "Vous avez peut-être entré une opérande
sans opérateur"

J'ai tout décortiqué et je vois pas où se trouve l'erreur! Faut dire que moi
et la prog...ça fait deux!

On peut m'aider?


Bonjour

Essais :
Iff(IsNull(Note1]) And IsNull(Note2]) And
IsNull(Note3]);Null;(nz([Note1],0)+nz([Note2],0)+nz([Note3],0))/(IIf(IsNull([Note1]),0,1)+IIf(IsNull([Note2]),0,1)+IIf(IsNull([Note3]),0,1)))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
en cours de migration vers : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------

"StageBF" a écrit dans le message de
news:
J'ai tenté cette formule, j'ai décortiqué chaque parenthèse et tout mais
ça
fonctionne pas!

=IIf(iserror((nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1)));"";(nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1))

Il n'y a pas d'autres moyens de faire disparaître ces inesthétiques
#erreur
quand il n'y a aucune valeur d'entré dans note1, note2 ou note3?

Merci!











Avatar
ze_titi
iff est à remplacer par iif... Juste une erreur de frappe...De plus, si tu
vois des virgules dans la formule, remplace par des points-virgules.

Voila, en espérant que ça fonctionne...
--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




J'aimerais tellement que ça fonctionne mais on me renvoit toujours le message
: "Fonction IIF non définie dans l'expression"

Je crois que je devrais abandonner et endurer ces foutus #error, ça fait dur
mais bon...!


Iff(IsNull([Note1]) And IsNull([Note2]) And
IsNull([Note3]);Null;(nz(cdbl([Note1]);0)+nz(cdbl([Note2]);0)+nz(cdbl([Note3]);0))/(IIf(IsNull([Note1]);0;1)+IIf(IsNull([Note2]);0;1)+IIf(IsNull([Note3]);0;1)))

--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Allo!

J'ai tout essayé! On m'envoie toujours ce pu.... de message : "La syntaxe de
l'expression entré n'est pas correct" "Vous avez peut-être entré une opérande
sans opérateur"

J'ai tout décortiqué et je vois pas où se trouve l'erreur! Faut dire que moi
et la prog...ça fait deux!

On peut m'aider?


Bonjour

Essais :
Iff(IsNull(Note1]) And IsNull(Note2]) And
IsNull(Note3]);Null;(nz([Note1],0)+nz([Note2],0)+nz([Note3],0))/(IIf(IsNull([Note1]),0,1)+IIf(IsNull([Note2]),0,1)+IIf(IsNull([Note3]),0,1)))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
en cours de migration vers : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------

"StageBF" a écrit dans le message de
news:
J'ai tenté cette formule, j'ai décortiqué chaque parenthèse et tout mais
ça
fonctionne pas!

=IIf(iserror((nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1)));"";(nz(cdbl([note1)];0)+nz(cdbl([note2]);0)+nz(cdbl([Note3]);0))/(IIf(isnull([note1]);0;1)+IIf(isnull([note2]);0;1)+IIf(isnull([note3]);0;1))

Il n'y a pas d'autres moyens de faire disparaître ces inesthétiques
#erreur
quand il n'y a aucune valeur d'entré dans note1, note2 ou note3?

Merci!













1 2