OVH Cloud OVH Cloud

Calcul dans état

4 réponses
Avatar
Sady
Bonjour =E0 tous,

me voici au bout de mes connaissances. Je vous explique=20
mon probl=E8me.=20

J'ai un champ texte qui s'appelle "No" et un champ=20
num=E9rique qui s'appelle "L/s sp=E9cifi=E9" dans mon =E9tat.
Dans un controle texte ou autre si c'est la solution, qui=20
s'appelle "Total sp=E9cifi=E9" je d=E9sire avoir le calcul=20
suivant:=20

si no =3D ne contient que des nombres alors faire la somme=20
de L/s sp=E9cifi=E9
si no =3D contient des nombres et des alphabet alors ne=20
faire que la somme des nombres dans L/s sp=E9cifi=E9

Donc si j'ai 5 entr=E9es comme cet exemple:
No L/s sp=E9cifi=E9
A1 550
2 50
3 75
4 25
R5 500

Le champ "Total sp=E9cifi=E9" devrait afficher : 150=20

J'ai essay=E9 quelque chose comme ca : =3DSomme ([L/s=20
sp=E9cifi=E9]) Ou ([No]=3D">0");[=3Dsomme L/s sp=E9cifi=E9])

et bien d'autre chose mais rien ne fonctionne..
Est-ce que quelqu'un =E0 une id=E9e ?

Je ne suis pas tr=E8s bonne avec Access, svp soyez le plus=20
d=E9taill=E9 possible et surtout dite moi ou mettre ce champ=20
svp :)

J'ai Access 2000 et WinXP

Merci =E0 tous
Sady

4 réponses

Avatar
Michel Gesnot
Bonjour Sady

1. La fonction à utiliser est IsNumeric qui renvoie une
valeur booléenne, soit 0 ou -1
Et je l'utiliserais pour déterminer la valeur du champ
calculé TotalSpécifié, de la manière suivante :
TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1

Si No n'est pas numérique, [L/s spécifié] est multiplié
par 0 et le champ vaut zéro
Si No est numérique, l'opération a lieu et il faut
multiplier par -1 pour neutraliser le signe négatif de la
valeur True = -1 de IsNumeric.

2. Je ne sais pas comment est construit votre état,
notamment s'il comprend des groupes.
Pour faire simple, travaillons avec une section
EnTête/Pied d'état et une section Détail.

Dans la section détail, vous créez le champ calculé
TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1
comme écrit plus haut.
Dans la section En tête ou Pied d'Etat au choix, vous
créez le champ calculé TotalSpécifiéGénéral (par exemple).
Vous définissez sa valeur (Source Contrôle) de la manière
suivante :
TotalSpécifiéGénéral = Somme(IsNumeric(No) * [L/s
spécifié] * -1), càd = Somme(expression Source Controle du
champ dont on veut obtenir le total).

Vous devriez obtenir le résultat souhaité.
Cela fonctionne de la même manière au niveau des groupes.

Pour plus d'info, voyez l'aide en ligne :
Utilisation d'états
Calculs de totaux et expressions
Calculs de totaux
Calculer un total pour un enregistrement.

Vous pouvez aussi examiner Calcul pour un groupe et Cumul,
comme cela le bout de vos connaissances reculera encore un
peu plus :).

Je suis absent pour la journée.
Donc, si vous avez un problème, j'espère que quelqu'un
prendra le relais.

Bon travail.
Michel Gesnot


-----Message d'origine-----
Bonjour à tous,

me voici au bout de mes connaissances. Je vous explique
mon problème.

J'ai un champ texte qui s'appelle "No" et un champ
numérique qui s'appelle "L/s spécifié" dans mon état.
Dans un controle texte ou autre si c'est la solution, qui
s'appelle "Total spécifié" je désire avoir le calcul
suivant:

si no = ne contient que des nombres alors faire la somme
de L/s spécifié
si no = contient des nombres et des alphabet alors ne
faire que la somme des nombres dans L/s spécifié

Donc si j'ai 5 entrées comme cet exemple:
No L/s spécifié
A1 550
2 50
3 75
4 25
R5 500

Le champ "Total spécifié" devrait afficher : 150

J'ai essayé quelque chose comme ca : =Somme ([L/s
spécifié]) Ou ([No]=">0");[=somme L/s spécifié])

et bien d'autre chose mais rien ne fonctionne..
Est-ce que quelqu'un à une idée ?

Je ne suis pas très bonne avec Access, svp soyez le plus
détaillé possible et surtout dite moi ou mettre ce champ
svp :)

J'ai Access 2000 et WinXP

Merci à tous
Sady



.



Avatar
Sady
Bonjour Michel

Dans mon état section détail j'ai mis le champ recommandé:
TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1

j'ai une section pied de groupe dans laquelle j'ai mis le
champ recommandé:
TotalSpécifiéGénéral = Somme(IsNumeric(No) * [L/s
spécifié] * -1)

Lorsque j'entre une donnée avec une valeur non numérique
dans le champ "no" il me met la somme de 100 au lieu de
0. Il fait donc le calcul entier dans le champ
TotalSpécifiéGénéral avec une valeur de 100 en plus.
voici l'exemple:
No L/s spécifié
R1 500
2 60
3 60
4 500

Mon TotalSpécifiéGénéral est de 720 alors qu'elle devrait
être de 620.
Je peux voir dans le champs TotalSpécifié de la section
détail qu'il change la valeur de R1 500 par la valeur
100. J'imagine que c'est la *-1 qui est en cause.. quelle
serait la bonne valeur ?

En passant merci beaucoup pour ces explications
détaillées qui m'aide énormément.
Sady


-----Message d'origine-----
Bonjour Sady

1. La fonction à utiliser est IsNumeric qui renvoie une
valeur booléenne, soit 0 ou -1
Et je l'utiliserais pour déterminer la valeur du champ
calculé TotalSpécifié, de la manière suivante :
TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1

Si No n'est pas numérique, [L/s spécifié] est multiplié
par 0 et le champ vaut zéro
Si No est numérique, l'opération a lieu et il faut
multiplier par -1 pour neutraliser le signe négatif de
la

valeur True = -1 de IsNumeric.

2. Je ne sais pas comment est construit votre état,
notamment s'il comprend des groupes.
Pour faire simple, travaillons avec une section
EnTête/Pied d'état et une section Détail.

Dans la section détail, vous créez le champ calculé
TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1
comme écrit plus haut.
Dans la section En tête ou Pied d'Etat au choix, vous
créez le champ calculé TotalSpécifiéGénéral (par
exemple).

Vous définissez sa valeur (Source Contrôle) de la
manière

suivante :
TotalSpécifiéGénéral = Somme(IsNumeric(No) * [L/s
spécifié] * -1), càd = Somme(expression Source Controle
du

champ dont on veut obtenir le total).

Vous devriez obtenir le résultat souhaité.
Cela fonctionne de la même manière au niveau des groupes.

Pour plus d'info, voyez l'aide en ligne :
Utilisation d'états
Calculs de totaux et expressions
Calculs de totaux
Calculer un total pour un enregistrement.

Vous pouvez aussi examiner Calcul pour un groupe et
Cumul,

comme cela le bout de vos connaissances reculera encore
un

peu plus :).

Je suis absent pour la journée.
Donc, si vous avez un problème, j'espère que quelqu'un
prendra le relais.

Bon travail.
Michel Gesnot


-----Message d'origine-----
Bonjour à tous,

me voici au bout de mes connaissances. Je vous explique
mon problème.

J'ai un champ texte qui s'appelle "No" et un champ
numérique qui s'appelle "L/s spécifié" dans mon état.
Dans un controle texte ou autre si c'est la solution,
qui


s'appelle "Total spécifié" je désire avoir le calcul
suivant:

si no = ne contient que des nombres alors faire la
somme


de L/s spécifié
si no = contient des nombres et des alphabet alors ne
faire que la somme des nombres dans L/s spécifié

Donc si j'ai 5 entrées comme cet exemple:
No L/s spécifié
A1 550
2 50
3 75
4 25
R5 500

Le champ "Total spécifié" devrait afficher : 150

J'ai essayé quelque chose comme ca : =Somme ([L/s
spécifié]) Ou ([No]=">0");[=somme L/s spécifié])

et bien d'autre chose mais rien ne fonctionne..
Est-ce que quelqu'un à une idée ?

Je ne suis pas très bonne avec Access, svp soyez le
plus


détaillé possible et surtout dite moi ou mettre ce
champ


svp :)

J'ai Access 2000 et WinXP

Merci à tous
Sady



.

.





Avatar
Sady
Bonsoir.. je n'ai toujours pas trouvé ma solution.. alors
si quelqu'un à une idée.. elle serait bienvenue

Merci
Sady
-----Message d'origine-----
Bonjour Michel

Dans mon état section détail j'ai mis le champ
recommandé:

TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1

j'ai une section pied de groupe dans laquelle j'ai mis
le

champ recommandé:
TotalSpécifiéGénéral = Somme(IsNumeric(No) * [L/s
spécifié] * -1)

Lorsque j'entre une donnée avec une valeur non numérique
dans le champ "no" il me met la somme de 100 au lieu de
0. Il fait donc le calcul entier dans le champ
TotalSpécifiéGénéral avec une valeur de 100 en plus.
voici l'exemple:
No L/s spécifié
R1 500
2 60
3 60
4 500

Mon TotalSpécifiéGénéral est de 720 alors qu'elle
devrait

être de 620.
Je peux voir dans le champs TotalSpécifié de la section
détail qu'il change la valeur de R1 500 par la valeur
100. J'imagine que c'est la *-1 qui est en cause..
quelle

serait la bonne valeur ?

En passant merci beaucoup pour ces explications
détaillées qui m'aide énormément.
Sady


-----Message d'origine-----
Bonjour Sady

1. La fonction à utiliser est IsNumeric qui renvoie une
valeur booléenne, soit 0 ou -1
Et je l'utiliserais pour déterminer la valeur du champ
calculé TotalSpécifié, de la manière suivante :
TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1

Si No n'est pas numérique, [L/s spécifié] est multiplié
par 0 et le champ vaut zéro
Si No est numérique, l'opération a lieu et il faut
multiplier par -1 pour neutraliser le signe négatif de
la

valeur True = -1 de IsNumeric.

2. Je ne sais pas comment est construit votre état,
notamment s'il comprend des groupes.
Pour faire simple, travaillons avec une section
EnTête/Pied d'état et une section Détail.

Dans la section détail, vous créez le champ calculé
TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1
comme écrit plus haut.
Dans la section En tête ou Pied d'Etat au choix, vous
créez le champ calculé TotalSpécifiéGénéral (par
exemple).

Vous définissez sa valeur (Source Contrôle) de la
manière

suivante :
TotalSpécifiéGénéral = Somme(IsNumeric(No) * [L/s
spécifié] * -1), càd = Somme(expression Source Controle
du

champ dont on veut obtenir le total).

Vous devriez obtenir le résultat souhaité.
Cela fonctionne de la même manière au niveau des
groupes.



Pour plus d'info, voyez l'aide en ligne :
Utilisation d'états
Calculs de totaux et expressions
Calculs de totaux
Calculer un total pour un enregistrement.

Vous pouvez aussi examiner Calcul pour un groupe et
Cumul,

comme cela le bout de vos connaissances reculera encore
un

peu plus :).

Je suis absent pour la journée.
Donc, si vous avez un problème, j'espère que quelqu'un
prendra le relais.

Bon travail.
Michel Gesnot


-----Message d'origine-----
Bonjour à tous,

me voici au bout de mes connaissances. Je vous
explique



mon problème.

J'ai un champ texte qui s'appelle "No" et un champ
numérique qui s'appelle "L/s spécifié" dans mon état.
Dans un controle texte ou autre si c'est la solution,
qui


s'appelle "Total spécifié" je désire avoir le calcul
suivant:

si no = ne contient que des nombres alors faire la
somme


de L/s spécifié
si no = contient des nombres et des alphabet alors ne
faire que la somme des nombres dans L/s spécifié

Donc si j'ai 5 entrées comme cet exemple:
No L/s spécifié
A1 550
2 50
3 75
4 25
R5 500

Le champ "Total spécifié" devrait afficher : 150

J'ai essayé quelque chose comme ca : =Somme ([L/s
spécifié]) Ou ([No]=">0");[=somme L/s spécifié])

et bien d'autre chose mais rien ne fonctionne..
Est-ce que quelqu'un à une idée ?

Je ne suis pas très bonne avec Access, svp soyez le
plus


détaillé possible et surtout dite moi ou mettre ce
champ


svp :)

J'ai Access 2000 et WinXP

Merci à tous
Sady



.

.


.






Avatar
Michel Gesnot
Bonjour Sady

J'ai raté votre réponse et je constate que mon post
précédent n'est pas visible aujourd'hui .... Caprices
météo ou débuts de vacances ?

Je ne saisis pas l'origine de votre problème.

La multiplication par -1 n'est pas en cause :
- cette multiplication fonctionne pafaitement avec les
champs numériques 2, 3 et 4 si je me réfère au fait que
vous ne signalez pas d'erreur pour ces lignes
- elle ne peut pas produire un résultat équivalent à une
multiplication par 0,2 parce que 100 = 500 * 0,2 jusqu'à
nouvel ordre et Access ne se plante pas à ce point là.

Donc, il faut chercher pourquoi elle se comporte comme si
No valait 100 et pas 500.

Question : n'y a-t-il pas simultanément un champ de la
source de l'état que s'appelle "no" et une zone de l'état
qui s'appelle "no" ?

Essayez de tracer ce qui se passe de la manière suivante :
- "isNumeric(no) dans une zone de texte Test0 ;
- le calcul "IsNumeric(No) * [L/s spécifié]" dans une zone
calculée Test1 et
- le même calcul en mettant "no" entre crochets,
soit "IsNumeric([No]) * [L/s spécifié]" dans une zone
calculée Test2.
Les crochets pour nous assurer que c'est bien la zone de
l'état qui sera prise en compte et non un éventuel champ
homonyme de la source.

Dans ces tests, comme nous n'utilisons pas la
multiplication -1 : pas d'influence de cette
multiplication et résultat négatif.

Vous me tenez au courant ?

A bientôt, Sady

Michel Gesnot


-----Message d'origine-----
Bonjour Michel

Dans mon état section détail j'ai mis le champ recommandé:
TotalSpécifié = IsNumeric(No) * [L/s spécifié] * -1

j'ai une section pied de groupe dans laquelle j'ai mis le
champ recommandé:
TotalSpécifiéGénéral = Somme(IsNumeric(No) * [L/s
spécifié] * -1)

Lorsque j'entre une donnée avec une valeur non numérique
dans le champ "no" il me met la somme de 100 au lieu de
0. Il fait donc le calcul entier dans le champ
TotalSpécifiéGénéral avec une valeur de 100 en plus.
voici l'exemple:
No L/s spécifié
R1 500
2 60
3 60
4 500

Mon TotalSpécifiéGénéral est de 720 alors qu'elle devrait
être de 620.
Je peux voir dans le champs TotalSpécifié de la section
détail qu'il change la valeur de R1 500 par la valeur
100. J'imagine que c'est la *-1 qui est en cause.. quelle
serait la bonne valeur ?

En passant merci beaucoup pour ces explications
détaillées qui m'aide énormément.
Sady