OVH Cloud OVH Cloud

Erreur dans une somme

14 réponses
Avatar
Nathalie Lebas
--
Nathalie

10 réponses

1 2
Avatar
Nathalie Lebas
SUITE !!
Je fais une somme des lignes détails d'un sous-formulaire dans le pied de
page de celui-ci. Tout va bien lorsqu'il existe des lignes mais parfois, le
sous-formulaire est vide donc j'ai une erreur. Comment peut-on éviter cela ?
D'autant plus que la valeur de ce total est utilisée dans un autre calcul !
Merci d'avance
A +
--
Nathalie




--
Nathalie


Avatar
pgz
Bonsoir,

Au lieu d'avoir dans le contrôle bas de SF = sum([Contrôle]),
essaies :
= sum(Nz([Contrôle],0)

Cordialement,
pgz
Avatar
Nathalie Lebas
Bonjour,

Merci de ta réponse. Malheureusement cela ne résoud pas mon problème. En
effet, lorsque tu fais une somme dans un sous-formulaire sans enregistrement,
le résultat est vide et pas null. Je cherche donc un moyen de tester "vide"
afin de ne pas l'utiliser dans mes calculs suivants.
Si tu as un autre idée ..
Merci
A +
--
Nathalie



Bonsoir,

Au lieu d'avoir dans le contrôle bas de SF = sum([Contrôle]),
essaies :
= sum(Nz([Contrôle],0)

Cordialement,
pgz




Avatar
Eric
Bonjour,

... Je cherche donc un moyen de tester "vide"
afin de ne pas l'utiliser dans mes calculs suivants.



Et avec la fonction IsEmpty() ?


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

Avatar
Nathalie Lebas
Bonjour,

Merci pour ta réponse. La fonction isempty() ne fonctionne pas non plus.
Je me demande s'il n'existe pas une fonction ou autre, permettant de
déterminer que le sous-formulaire ne contient aucune ligne.
A +
--
Nathalie


"Eric" wrote:

Bonjour,

... Je cherche donc un moyen de tester "vide"
afin de ne pas l'utiliser dans mes calculs suivants.



Et avec la fonction IsEmpty() ?


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




Avatar
Eric
re,

tu peux le savoir avec
Me.[NomDeLObjetSousForm].Form.Recordset.Recordcount

Ainsi, la proc suivante du formulaire principal affichera dans la
fenêtre Exécution de VB le nb d'enregistrements contenus dans le
sous-formulaire tFacture_Sous_formulaire

Private Sub Form_Current()
Debug.Print Me.tFacture_Sous_formulaire.Form.Recordset.RecordCount
End Sub

Bonjour,

Merci pour ta réponse. La fonction isempty() ne fonctionne pas non plus.
Je me demande s'il n'existe pas une fonction ou autre, permettant de
déterminer que le sous-formulaire ne contient aucune ligne.
A +


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

Avatar
pgz
Bonjour,


A quel endroit as-tu l'erreur. Dans ton contrôle somme ou dans son
utilisation. Normalement, cela devrait être dans le deuxième, et c'est là
qu'il faut utiliser Nz.

Bon courage,
pgz
Avatar
Nathalie Lebas
Effectivement l'erreur se produit lors de son utilisation. Nz ne fonctionne
pas chez moi. Ce qui m'étonne c'est que lorsque je tape nz, Access ne le
transforme pas en Nz ! Je pense qu'il y a un souci. Je tape cette expression
dans le champ source d'un contrôle.
As tu une idée.
A +
--
Nathalie



Bonjour,


A quel endroit as-tu l'erreur. Dans ton contrôle somme ou dans son
utilisation. Normalement, cela devrait être dans le deuxième, et c'est là
qu'il faut utiliser Nz.

Bon courage,
pgz





Avatar
pgz
Hello!

Si tu fait la somme dans 'total' de SF et que tu l'utilise dans 'control' du
formulaire,
alors la source de total doit être du genre :
= Nz(Forms!MonFormuliare.ContainerSF.Form.Total; 0) ...
Si Nz ne fonctionne pas, ce qui ne serait pas ordinaire, tu peux faire avec
Iif ( = VraiFaux):
= Iif( Not IsNull(Forms!...); Forms!... ; 0)

A +

pgz
Avatar
Nathalie Lebas
Exacte,
J'avais déjà testé le iif ou vraifaux lorsque tu le mets dans la source d'un
contrôle mais cela ne fonctionne pas plus !
Je sèche complètement sur le sujet.
A +
--
Nathalie



Hello!

Si tu fait la somme dans 'total' de SF et que tu l'utilise dans 'control' du
formulaire,
alors la source de total doit être du genre :
= Nz(Forms!MonFormuliare.ContainerSF.Form.Total; 0) ...
Si Nz ne fonctionne pas, ce qui ne serait pas ordinaire, tu peux faire avec
Iif ( = VraiFaux):
= Iif( Not IsNull(Forms!...); Forms!... ; 0)

A +

pgz




1 2