Access TOTAUX

enlérga -  
LatelyGeek Messages postés 1758 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Bonjour,

J'ai un formulaire qui s'affiche après plusieurs filtres dans lequel il y a les champs:

Budget Prévisionnel (en k€)
Montant Commandé
Montant Réceptionné
Reste à Réceptionner

Qui sont des sommes voici les expressions :
=Somme([Budget Prévisionnel (en k€)])
=Somme([Montant Commandé])
=Somme([Montant Réceptionné])
=Somme([Reste à Réceptionner])

Donc selon ce que l'on rempli dans les filtres avant l'affichage du formulaire, le résultat sera différent.

Il y a un champ de la table qui s'appelle C/I ( Charge ou investissement), un C pour charge et un I pour Inverstissement.

Ce que je voudrais c'est couper les totaux en deux, c'est à dire faire les totaux Budget prév montant commandé ... quand c'est des charges (C), et faire les totaux quand c'est des Investissment (I).

Il faut surement mettre une condition mais je vois pas...car j'utilise pas de requête je tape les expressions direct dans le Source Contrôle

Merci D'avance !

7 réponses

LatelyGeek Messages postés 1758 Date d'inscription   Statut Membre Dernière intervention   550
 
Tu dois faire deux champs, que tu totaliseras, le premier s'appelerait par exemple MontantC et dirait VraiFaux([C/I]="I";[Montant];0) et l'autre l'inverse...
0
enlérga
 
Si on prend l'exemple du Montant Commandé:

je créer un champ sur le formulaire appelé MontantCom, je met en source controle de ce champ
=somme([Montant Commandé])

Mais Je sais pas ou entrer cette expression : VraiFaux([C/I]="I";[Montant Commandé];0)
Car le champ n'est pas relier à une requête, je met seulement comme source du champ : =somme...
0
enlérga
 
Si tu veux je veux le faire de cette manière:

CHARGE

Budget Prévisionnel (en k€) [=Somme([Budget Prévisionnel (en k€)]) ]
Montant Commandé [=Somme([Montant Commandé])]
Montant Réceptionné [ =Somme([Montant Réceptionné])]
Reste à Réceptionner [=Somme([Reste à Réceptionner])]

INVEST

Budget Prévisionnel (en k€) [=Somme([Budget Prévisionnel (en k€)]) ]
Montant Commandé [=Somme([Montant Commandé])]
Montant Réceptionné [ =Somme([Montant Réceptionné])]
Reste à Réceptionner [=Somme([Reste à Réceptionner])]
0
LatelyGeek Messages postés 1758 Date d'inscription   Statut Membre Dernière intervention   550
 
C'est dans le détail qu'il faut mettre ce que je t'ai écrit
0
enlérga
 
Si je dois faire le total de "Montant1" pour les Charges, j'ai mi dans le detail:

SommeMontant1C [ VraiFaux([C/I]="I";[Montant1];0] <====== ceci tapé dans le champ

Mais je vois pas à quel endroit on fait la somme, car juste comme ça il me met ce message d'erreur: #Nom ?
0
LatelyGeek Messages postés 1758 Date d'inscription   Statut Membre Dernière intervention   550
 
C'est Montant1 qui n'existe pas.

Tu crées ce champ Montant1 das le détail ([ VraiFaux([C/I]="I";[MontantReceptionné];0]

Et dans le pied tu fais la somme de Montant1
0
enlérga
 
Désolé de t'ennuyer encore avec ça...mais j'y arrive pas

Prenons un seul terme par exemple "Montant commandé" que je dois totaliser sur un même formulaire en séparant les Charges (C) de l'Investissement (I).

Je créer un champs dans Detail appelé "MontantReceptionnéCharge", je lui met comme Source contrôle:
(VraiFaux([C/I]="I";[Montant Receptionné];0)

Et dans le pied de formulaire: je met =Somme([MontantReceptionnéCharge])

Comme ça, ça marche pas!
De plus je ne veux pas avoir le champs "MontantReceptionnéCharge" dans mon formulaire !
0
LatelyGeek Messages postés 1758 Date d'inscription   Statut Membre Dernière intervention   550
 
Alors crée le dans la requête sur laquelle est basée l'état, tu résoudras les deux problèmes en même temps!!!

Au pire, si jamais tu es obligé de mettre ce champ dans le détail pour qu'Access fasse le total, mets "Non" dans sa propriété "Visible".
0
enlérga
 
J'ai ajouté une colonne dans la requête: MontantReceptCharge
avec comme critère: VraiFaux([C/I]="C";[Montant Réceptionné];0)

au lancement du formulaire, il me demande d'entrer la valeur du paramètre "MontantReceptCharge" et celle de "C/I"
car MontantReceptCharge n'est pas dans la table !!
Si j'ajoute MontantReceptCharge dans la table il demande toujours la valeur du paramètre "C/I"...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LatelyGeek Messages postés 1758 Date d'inscription   Statut Membre Dernière intervention   550
 
Ca n'est pas un critère du tout!!!! C'est ton champ, justement.

Dans le champ tu dois avoir MontantReceptCharge: VraiFaux([C/I]="C";[Montant Réceptionné];0)
0
enlérga
 
oK !
Effectivement comme ça, ça marche beaucoup mieux :)

Dernière chose ! Pourrais-tu m'éxpliquer les différents termes de cette expression:
VraiFaux([C/I]="C";[critère];0)

VraiFaux? le '0' a la fin??

Merci bien .
0
LatelyGeek Messages postés 1758 Date d'inscription   Statut Membre Dernière intervention   550
 
VraiFaux veut dire SI, mais le terme est "réservé" par VB (En SQL, VraiFaux s'écrit Iif - avec deux i, pour différencier du If)

Donc Si la valeur du champ C/I est C, on prend la valeur du champ MontantReceptionné, sinon on prend Zéro.

Vont donc figurer dans ce champ les montants de toutes les lignes de détail pour lesquelle C/I = C.

Pour récupérer Le montant des champs des lignes pour lesquelles C/I est I, on avait deux choix:
VraiFaux([C/I]="I";[Montant Réceptionné];0)

Ou alors, plus rapide à taper:
MontantRéceptionné - MontantReceptCharge...
0
enlérga
 
okok, Merci de l'éxplication!

Car je pense que le tout n'est pas de rentrer l'expression toute faite, mais de la comprendre et de pouvoir la réutiliser !

Merci encore Bon Week End :)
0
LatelyGeek Messages postés 1758 Date d'inscription   Statut Membre Dernière intervention   550
 
Alors là, c'est sûrement pas moi qui vais te dire le contraire!!!
0