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

Totaux à partir de champs calculés

8 réponses
Avatar
Nathan_Adler
Bonjour,

Je dispose d'un formulaire continu constitué de:
une liste de pièces à deux colonnes (Nom de la pièce et son poids)
un champ quantité
une zone de texte indépendante (txtPDS) affichant le poids de la pièce
selectionnée -> [ListPieces].[column](1))
une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]

Je souhaite afficher le poids total dans le pied du formulaire mais il
m'indique #erreur bien que le calcul se fasse bien à chaque ligne.

Un export des données de mon formulaire dans Excel m'apprend que les 2 zones
de texte indépedantes contiennent des nombres au format texte. L'utilisation
de fonction de conversion dans mes formules ne change rien au problème.


Merci d'avance pour votre aide ...

8 réponses

Avatar
Thierry (ze Titi)
Hello Nathan !

une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]
Íbl(Nz([txtPDS];0))*Nz([Quantité];0))


Et dans ton total:
=Somme(CDbl(Nz([PoidsTotal];0)))

En ce jour mémorable du vendredi 13/07/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,

Je dispose d'un formulaire continu constitué de:
une liste de pièces à deux colonnes (Nom de la pièce et son poids)
un champ quantité
une zone de texte indépendante (txtPDS) affichant le poids de la pièce
selectionnée -> [ListPieces].[column](1))
une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]

Je souhaite afficher le poids total dans le pied du formulaire mais il
m'indique #erreur bien que le calcul se fasse bien à chaque ligne.

Un export des données de mon formulaire dans Excel m'apprend que les 2 zones
de texte indépedantes contiennent des nombres au format texte. L'utilisation
de fonction de conversion dans mes formules ne change rien au problème.


Merci d'avance pour votre aide ...


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Nathan_Adler
Merci Thierry mais ...

J'ai toujours une erreur en pied de formulaire, j'ai tenté ta formule telle
que tu me l'as indiquée puis en remplaçant le champ [PoidsTotal] par la
formule de calcul mais rien n'y fait.

Une remarque : à priori je ne peux pas faire de calcul dans le pied de
formulaire à partir d'un contrôle calculé du formaire. 1 Exemple, sans autre
interêt que d'illustrer ma remarque ;-):

Ctrl indept [DoubleQuantite] avec une formule =[Quantite]*2
Dans le pied de formulaire :
Ctrl Indept [Total] avec une formule =somme([DoubleQuantite]) --> #ERREUR
Ctrl Indept [Total] avec une formule =somme([Quantite]*2) --> OK

Ma formule de calcul du poids faisant appel à un champ calculé, je me trouve
bloqué pour obtenir la somme.

Qu'en dis tu?





Hello Nathan !

une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]
Íbl(Nz([txtPDS];0))*Nz([Quantité];0))


Et dans ton total:
=Somme(CDbl(Nz([PoidsTotal];0)))

En ce jour mémorable du vendredi 13/07/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,

Je dispose d'un formulaire continu constitué de:
une liste de pièces à deux colonnes (Nom de la pièce et son poids)
un champ quantité
une zone de texte indépendante (txtPDS) affichant le poids de la pièce
selectionnée -> [ListPieces].[column](1))
une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]

Je souhaite afficher le poids total dans le pied du formulaire mais il
m'indique #erreur bien que le calcul se fasse bien à chaque ligne.

Un export des données de mon formulaire dans Excel m'apprend que les 2 zones
de texte indépedantes contiennent des nombres au format texte. L'utilisation
de fonction de conversion dans mes formules ne change rien au problème.


Merci d'avance pour votre aide ...


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






Avatar
Eric
Bonjour,

Le constat que tu fais me parait normal.
Ne pourrais-tu pas faire les calculs de chaque ligne dans une requête
qui serait la source de ton formulaire puis en faire la somme au pied du
formulaire ?

...

Une remarque : à priori je ne peux pas faire de calcul dans le pied de
formulaire à partir d'un contrôle calculé du formaire. 1 Exemple, sans autre
interêt que d'illustrer ma remarque ;-):

Ctrl indept [DoubleQuantite] avec une formule =[Quantite]*2
Dans le pied de formulaire :
Ctrl Indept [Total] avec une formule =somme([DoubleQuantite]) --> #ERREUR
Ctrl Indept [Total] avec une formule =somme([Quantite]*2) --> OK

Ma formule de calcul du poids faisant appel à un champ calculé, je me trouve
bloqué pour obtenir la somme.

Qu'en dis tu?





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

Avatar
Thierry (ze Titi)
Pareil qu'Eric, le constat paraît logique. Ceci étant dit, j'avais
inclus, dans ma proposition, des fonctions de conversion. J'avais eu le
même genre de problème et la conversion m'avait permis de le résoudre
(mais je ne sais plus si c'était dans un formulaire ou dans un état).

Message du vendredi 13/07/2007

Merci Thierry mais ...

J'ai toujours une erreur en pied de formulaire, j'ai tenté ta formule telle
que tu me l'as indiquée puis en remplaçant le champ [PoidsTotal] par la
formule de calcul mais rien n'y fait.

Une remarque : à priori je ne peux pas faire de calcul dans le pied de
formulaire à partir d'un contrôle calculé du formaire. 1 Exemple, sans autre
interêt que d'illustrer ma remarque ;-):

Ctrl indept [DoubleQuantite] avec une formule =[Quantite]*2
Dans le pied de formulaire :
Ctrl Indept [Total] avec une formule =somme([DoubleQuantite]) --> #ERREUR
Ctrl Indept [Total] avec une formule =somme([Quantite]*2) --> OK

Ma formule de calcul du poids faisant appel à un champ calculé, je me trouve
bloqué pour obtenir la somme.

Qu'en dis tu?





Hello Nathan !

une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]
Íbl(Nz([txtPDS];0))*Nz([Quantité];0))


Et dans ton total:
=Somme(CDbl(Nz([PoidsTotal];0)))

En ce jour mémorable du vendredi 13/07/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,

Je dispose d'un formulaire continu constitué de:
une liste de pièces à deux colonnes (Nom de la pièce et son poids)
un champ quantité
une zone de texte indépendante (txtPDS) affichant le poids de la pièce
selectionnée -> [ListPieces].[column](1))
une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]

Je souhaite afficher le poids total dans le pied du formulaire mais il
m'indique #erreur bien que le calcul se fasse bien à chaque ligne.

Un export des données de mon formulaire dans Excel m'apprend que les 2
zones de texte indépedantes contiennent des nombres au format texte.
L'utilisation de fonction de conversion dans mes formules ne change rien
au problème.


Merci d'avance pour votre aide ...


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info



Avatar
Nathan_Adler
Merci Eric,

Effectivement je n'aurai semble t'il pas de souci pour un enregistrement
existant que ce soit dans un formulaire ou dans un état en calculant comme tu
le préconises directement dans ma requête.

Les calculs que je réalise dans le formulaire doivent renseigner
l'utilisateur au fur et à mesure de sa saisie d'un nouvel ensemble. D'où les
calculs "à la volée"




Ne pourrais-tu pas faire les calculs de chaque ligne dans une requête
qui serait la source de ton formulaire puis en faire la somme au pied du
formulaire ?


Avatar
Nathan_Adler
J'ai bien utilisé les fonctions de conversion pour les formules utilisant les
données de ma liste (données qui doivent être assimilées à du texte à mon
avis).

J'ai tenté également de ne pas utiliser mes contrôles indépendants dans le
calcul du pied de formulaire mais cela reste inéfficace.
Par exemple, dans le pied de formulaire
=Somme(CDbl(NZ([NumPrix].[column](1);0))) -> #Erreur alors que
Íbl(NZ([NumPrix].[column](1);0)) fonctionne bien dans le corps du
formulaire.

Peut être n'a t'on accès en pied de formulaire qu'aux données sources (donc
la colonne liée de ma liste mais pas les autres).

Qu'en pensez vous?


Pareil qu'Eric, le constat paraît logique. Ceci étant dit, j'avais
inclus, dans ma proposition, des fonctions de conversion. J'avais eu le
même genre de problème et la conversion m'avait permis de le résoudre
(mais je ne sais plus si c'était dans un formulaire ou dans un état).

Message du vendredi 13/07/2007

Merci Thierry mais ...

J'ai toujours une erreur en pied de formulaire, j'ai tenté ta formule telle
que tu me l'as indiquée puis en remplaçant le champ [PoidsTotal] par la
formule de calcul mais rien n'y fait.

Une remarque : à priori je ne peux pas faire de calcul dans le pied de
formulaire à partir d'un contrôle calculé du formaire. 1 Exemple, sans autre
interêt que d'illustrer ma remarque ;-):

Ctrl indept [DoubleQuantite] avec une formule =[Quantite]*2
Dans le pied de formulaire :
Ctrl Indept [Total] avec une formule =somme([DoubleQuantite]) --> #ERREUR
Ctrl Indept [Total] avec une formule =somme([Quantite]*2) --> OK

Ma formule de calcul du poids faisant appel à un champ calculé, je me trouve
bloqué pour obtenir la somme.

Qu'en dis tu?





Hello Nathan !

une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]
Íbl(Nz([txtPDS];0))*Nz([Quantité];0))


Et dans ton total:
=Somme(CDbl(Nz([PoidsTotal];0)))

En ce jour mémorable du vendredi 13/07/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,

Je dispose d'un formulaire continu constitué de:
une liste de pièces à deux colonnes (Nom de la pièce et son poids)
un champ quantité
une zone de texte indépendante (txtPDS) affichant le poids de la pièce
selectionnée -> [ListPieces].[column](1))
une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]

Je souhaite afficher le poids total dans le pied du formulaire mais il
m'indique #erreur bien que le calcul se fasse bien à chaque ligne.

Un export des données de mon formulaire dans Excel m'apprend que les 2
zones de texte indépedantes contiennent des nombres au format texte.
L'utilisation de fonction de conversion dans mes formules ne change rien
au problème.


Merci d'avance pour votre aide ...


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info








Avatar
Eric
re,

Normalement, cela devrait fonctionner même pour de nouveaux
enregistrements; les calculs se faisant au fur et à mesure dans la requête.

Merci Eric,

Effectivement je n'aurai semble t'il pas de souci pour un enregistrement
existant que ce soit dans un formulaire ou dans un état en calculant comme tu
le préconises directement dans ma requête.

Les calculs que je réalise dans le formulaire doivent renseigner
l'utilisateur au fur et à mesure de sa saisie d'un nouvel ensemble. D'où les
calculs "à la volée"




Ne pourrais-tu pas faire les calculs de chaque ligne dans une requête
qui serait la source de ton formulaire puis en faire la somme au pied du
formulaire ?




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


Avatar
Nathan_Adler
Problème résolu :

J'ai contourné le pb en transformant mon formulaire en sous formulaire.
J'ajoute un deuxième sous formulaire basé sur une requête comprenant les
instruction de calculs du total et je force la mise à jour en vba dès que
l'on modifie le premier sous formulaire.

Merci à tous


Pareil qu'Eric, le constat paraît logique. Ceci étant dit, j'avais
inclus, dans ma proposition, des fonctions de conversion. J'avais eu le
même genre de problème et la conversion m'avait permis de le résoudre
(mais je ne sais plus si c'était dans un formulaire ou dans un état).

Message du vendredi 13/07/2007

Merci Thierry mais ...

J'ai toujours une erreur en pied de formulaire, j'ai tenté ta formule telle
que tu me l'as indiquée puis en remplaçant le champ [PoidsTotal] par la
formule de calcul mais rien n'y fait.

Une remarque : à priori je ne peux pas faire de calcul dans le pied de
formulaire à partir d'un contrôle calculé du formaire. 1 Exemple, sans autre
interêt que d'illustrer ma remarque ;-):

Ctrl indept [DoubleQuantite] avec une formule =[Quantite]*2
Dans le pied de formulaire :
Ctrl Indept [Total] avec une formule =somme([DoubleQuantite]) --> #ERREUR
Ctrl Indept [Total] avec une formule =somme([Quantite]*2) --> OK

Ma formule de calcul du poids faisant appel à un champ calculé, je me trouve
bloqué pour obtenir la somme.

Qu'en dis tu?





Hello Nathan !

une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]
Íbl(Nz([txtPDS];0))*Nz([Quantité];0))


Et dans ton total:
=Somme(CDbl(Nz([PoidsTotal];0)))

En ce jour mémorable du vendredi 13/07/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,

Je dispose d'un formulaire continu constitué de:
une liste de pièces à deux colonnes (Nom de la pièce et son poids)
un champ quantité
une zone de texte indépendante (txtPDS) affichant le poids de la pièce
selectionnée -> [ListPieces].[column](1))
une zone de texte indépendante calculant le poids de la ligne ->
=[txtPDS]*[Quantité]

Je souhaite afficher le poids total dans le pied du formulaire mais il
m'indique #erreur bien que le calcul se fasse bien à chaque ligne.

Un export des données de mon formulaire dans Excel m'apprend que les 2
zones de texte indépedantes contiennent des nombres au format texte.
L'utilisation de fonction de conversion dans mes formules ne change rien
au problème.


Merci d'avance pour votre aide ...


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info