Access TOTAUX

enlérga -  
LatelyGeek Messages postés 1774 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 !
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. LatelyGeek Messages postés 1774 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
    1. 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
    2. 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
  2. LatelyGeek Messages postés 1774 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
    1. 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
  3. LatelyGeek Messages postés 1774 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
    1. 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
  4. LatelyGeek Messages postés 1774 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
    1. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. LatelyGeek Messages postés 1774 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
    1. 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
  7. LatelyGeek Messages postés 1774 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
    1. 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
  8. LatelyGeek Messages postés 1774 Date d'inscription   Statut Membre Dernière intervention   550
     
    Alors là, c'est sûrement pas moi qui vais te dire le contraire!!!
    0