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

erreur sur champ calculé dans un état.

9 réponses
Avatar
christian82
Bonjour à toutes et à tous.
J'ai un état qui contient deux sous état indépendants, l'un pour les
recettes et l'autre pour les dépenses. Le solde s'inscrit dans le pied d'état
principal dans un contrôle ayant pour sourse :
=États!EtatBilan.Recettes!RecetteOM-États!EtatBilan.Depenses!DepenseOM
Les champs en question sont des champs calculés qui affichent le total des
recettes et des dépenses dans les pieds des sous états correspondants.
Celà fonctionne bien, mais voilà, si le champ RecetteOM est null alors que
le champ DepenseOM contient une valeur, le résultat affiche erreur alors que
l'on attend une valeur négative.
Pouvez vous m'aider à résoudre ce problème?
Par avance merci.
--
Christian

9 réponses

Avatar
Pierre CFI [mvp]
bonjour
utilises Nz qui retourne 0 si ce qu'il y a entre les ( ) est Null
=Nz(.......)

--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
"christian82" a écrit dans le
message de news:
Bonjour à toutes et à tous.
J'ai un état qui contient deux sous état indépendants, l'un pour les
recettes et l'autre pour les dépenses. Le solde s'inscrit dans le pied
d'état
principal dans un contrôle ayant pour sourse :
=États!EtatBilan.Recettes!RecetteOM-États!EtatBilan.Depenses!DepenseOM
Les champs en question sont des champs calculés qui affichent le total des
recettes et des dépenses dans les pieds des sous états correspondants.
Celà fonctionne bien, mais voilà, si le champ RecetteOM est null alors que
le champ DepenseOM contient une valeur, le résultat affiche erreur alors
que
l'on attend une valeur négative.
Pouvez vous m'aider à résoudre ce problème?
Par avance merci.
--
Christian


Avatar
Gilles MOUGNOZ
Bonjour, Christian
Essaie de remplacer ta formule par :
=Nz(États!EtatBilan.Recettes!RecetteOM;0)-Nz(États!EtatBilan.Depenses!DepenseOM;0)
(Attention aux retours à la ligne!)
C'est mieux ?
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bojour Pierre et merci
Je n'avais pas précisé ma version d'access, il s'agit de la 2002.
J'ai essayé Nz(), mais le résultat est toujours erreur.
En fait le sous état [recette] ne s'affiche pas dès lors qu'il ne contient
pas de données. Avec Nz, selon moi, il devrait afficher 0, mais non.
Sans doute que j'utilise mal NZ. Je l'ai testé à plusieurs endroits:
contrôle détail, contôle pied de groupe, contrôle pied d'état, rien n'y
fait.
Merci pour les précisions que tu pourrais me donner.
--
Christian
bonjour
utilises Nz qui retourne 0 si ce qu'il y a entre les ( ) est Null
=Nz(.......)
--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
Bonjour à toutes et à tous.
J'ai un état qui contient deux sous état indépendants, l'un pour les
recettes et l'autre pour les dépenses. Le solde s'inscrit dans le pied
d'état
principal dans un contrôle ayant pour sourse :
=États!EtatBilan.Recettes!RecetteOM-États!EtatBilan.Depenses!DepenseOM
Les champs en question sont des champs calculés qui affichent le total
des
recettes et des dépenses dans les pieds des sous états correspondants.
Celà fonctionne bien, mais voilà, si le champ RecetteOM est null alors
que
le champ DepenseOM contient une valeur, le résultat affiche erreur
alors
que
l'on attend une valeur négative.
Pouvez vous m'aider à résoudre ce problème?
Par avance merci.
--
Christian






Avatar
Eric
Bonjour,

Manque le mot État(Report c'est mieux car pas d'accent et Access
traduira) dans les instructions:
Ne serait-ce pas:
=Nz(États!EtatBilan!Recettes.ÉTAT!RecetteOM;0)-Nz(États!EtatBilan!Depenses.ÉTAT!DepenseOM;0)

A tester.


Bonjour Gilles,
Merci de ta réponse mais c'est toujours "erreur" :o((

Il y a quelque chose qui coince, mais quoi? Mais comme dirait 3stone, le
beug est souvent entre l'écran et le dossier de la chaise ;-)

Cordialement--
Christian



Bonjour, Christian
Essaie de remplacer ta formule par :
=Nz(États!EtatBilan.Recettes!RecetteOM;0)-Nz(États!EtatBilan.Depenses!DepenseOM;0)
(Attention aux retours à la ligne!)
C'est mieux ?
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bojour Pierre et merci
Je n'avais pas précisé ma version d'access, il s'agit de la 2002.
J'ai essayé Nz(), mais le résultat est toujours erreur.
En fait le sous état [recette] ne s'affiche pas dès lors qu'il ne contient
pas de données. Avec Nz, selon moi, il devrait afficher 0, mais non.
Sans doute que j'utilise mal NZ. Je l'ai testé à plusieurs endroits:
contrôle détail, contôle pied de groupe, contrôle pied d'état, rien n'y
fait.
Merci pour les précisions que tu pourrais me donner.
--
Christian
bonjour
utilises Nz qui retourne 0 si ce qu'il y a entre les ( ) est Null
=Nz(.......)
--
Pierre
MVP Access
***************************************
Conseils MPFA: http://www.mpfa.info/
*********************************************************
Bonjour à toutes et à tous.
J'ai un état qui contient deux sous état indépendants, l'un pour les
recettes et l'autre pour les dépenses. Le solde s'inscrit dans le pied
d'état
principal dans un contrôle ayant pour sourse :
=États!EtatBilan.Recettes!RecetteOM-États!EtatBilan.Depenses!DepenseOM
Les champs en question sont des champs calculés qui affichent le total
des
recettes et des dépenses dans les pieds des sous états correspondants.
Celà fonctionne bien, mais voilà, si le champ RecetteOM est null alors
que
le champ DepenseOM contient une valeur, le résultat affiche erreur
alors
que
l'on attend une valeur négative.
Pouvez vous m'aider à résoudre ce problème?
Par avance merci.
--
Christian








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





Avatar
3stone
Salut,

"christian82"
| Ma formule marche parfaitement lorsque la somme des recettes affiche un
| nombre, mais plus du tout (#Erreur) lorsque cette somme est nulle, pb
| rencontré en début d'exercice 2007, où des dépenses sont enregistrées, mais
| pas encore des recettes! (faudrait pas que ça dure!) :-).


Pas tout suivi, mais essaies de remplacer le second Nz() par

iif ( IsError(...DepenseOM) , 0 , ...DepenseOM)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
3stone
Salut,

"christian82"
| Merci pour ta proposition, mais elle ne me donne pas la solution espérée.


Cela doit fonctionner !!

Lorsque tu n'as pas de recettes, le sous-état est vide et la zone de texte
dans laquelle tu somme tes recettes n'est pas adressable (n'existe pas...)
Note : c'est pour cela que Nz() ne fonctionne pas ;-)


Tu as donc :

- dans le sous_état_dépenses "se1" une zone de texte que tu dois nommer,
disons "txtSommeDepenses"

- dans le sous_état_recettes "se2" une zone de texte que tu dois nommer,
disons "txtSommeRecettes"

- dans l'état principal, une zone de texte qui aura comme source :

= (se1.Report!txtSommeDepenses) - IIF(IsError(se2.Report!txtSommeRecettes) ; 0 ;
se2.Report!txtSommeRecettes)

le tout sur une ligne
remplacer se1 par le nom du contrôle sous-état dépenses
remplacer se2 par le nom du contrôle sous-état recettes

Access va adapter "Report" à la langue locale
et ajouter éventuellement des crochets [ ]




Si tu ne commets pas d'erreur, cela fonctionnera ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
christian82
Bonjour Pierre,

Et ça fonctonne parfaitement. J'avais bien compris le principe, mais je
n'arrivais pas à le formuler correctement !
Je te précise que j'ai inversé les deux membres de l'équation, c'est à dire
recettes - dépenses.
Merci donc à toi pour ton aide toujours aussi efficace et ta patience avec
les éternels débutants que nous sommes :-((
--
Christian



Salut,

"christian82"
| Merci pour ta proposition, mais elle ne me donne pas la solution espérée.


Cela doit fonctionner !!

Lorsque tu n'as pas de recettes, le sous-état est vide et la zone de texte
dans laquelle tu somme tes recettes n'est pas adressable (n'existe pas...)
Note : c'est pour cela que Nz() ne fonctionne pas ;-)


Tu as donc :

- dans le sous_état_dépenses "se1" une zone de texte que tu dois nommer,
disons "txtSommeDepenses"

- dans le sous_état_recettes "se2" une zone de texte que tu dois nommer,
disons "txtSommeRecettes"

- dans l'état principal, une zone de texte qui aura comme source :

= (se1.Report!txtSommeDepenses) - IIF(IsError(se2.Report!txtSommeRecettes) ; 0 ;
se2.Report!txtSommeRecettes)

le tout sur une ligne
remplacer se1 par le nom du contrôle sous-état dépenses
remplacer se2 par le nom du contrôle sous-état recettes

Access va adapter "Report" à la langue locale
et ajouter éventuellement des crochets [ ]




Si tu ne commets pas d'erreur, cela fonctionnera ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/







Avatar
3stone
Salut,

"christian82"
| Et ça fonctonne parfaitement.

Ca roule ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Tisane
3stone wrote:
"christian82"
Et ça fonctonne parfaitement.


Ca roule ;-)


Et bien, cela ne devrait pas... Ne dit-on pas "Pierre qui roule n'amasse pas
mousse" ?
J'en entends déjà qui parle de la mousse de la bière ;-)

--
Tisane


Avatar
3stone
"Tisane"
| 3stone wrote:
| > Ca roule ;-)
|
| Et bien, cela ne devrait pas... Ne dit-on pas "Pierre qui roule n'amasse pas
| mousse" ?
| J'en entends déjà qui parle de la mousse de la bière ;-)

Mon petit doigt me dit que l'on a remplacé la tisane par une boisson
un chouia plus énergétique :o))

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/