Difference de deux valeurs d'un meme champ

Bonjour
Voilà deux enregistrements dans l'edition d' un etat:
date |sens |TOTAL
10-janv-15|Retour|495000
10-janv-15|Envoi |425000

Je voudrais mettre la difference du champ TOTAL(495000-425000) dans une zone de texte sur le même etat.
Cordialement,

5 réponses

  1. Bonjour,
    Et bien tu écris pour la valeur de ContrôleTotal = ContrôleA - ContrôleB où est le problème?
    0
    1. j'ai cree une zone text sur l'etat :

      Deficit=TOTAL-TOTAL ne donne pas de bonne reponse
      0
    2. @kotor70ça aurait pu être aidant d'avoir le résultat donné, ne crois-tu pas!
      Et de même, dire exactement comment tu avais écrit ton opération!
      Je ne suis pas devin.
      0
    3. Si le calcul est bon je devrai avoir le montant de 70000 dans un autre controle exemple deficit sur le meme etat.
      pour info l 'etat est basé sur une requête qui lancée donne toujours deux enregistrements. je voudrais faire ressortit le deficit en faisant la difference des deux valeurs du champ TOTAL.
      Cordialement,
      0
    4. @kotor70Bonjour
      Ta table est mal construite.
      Tu devrais avoir un champ date, un champ envoi et un champ retour.
      Aprés tu fais une requete de regroupement et tu creais un champ total dans requete ou tu mets la formule de calcul
      0
  2. Voilà la requete qui est derrière l'etat:
    SELECT TBL_MVT_CPT_A_MVT_CPT.Date_Mvt, TBL_DE_COMPTE.Nom_PDV_D_CPTE, TBL_DE_COMPTE.Prenom_PDV_D_CPTE, TBL_A_COMPTE.Nom_PDV, TBL_A_COMPTE.Prenom_PDV, TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt, Sum(TBL_MVT_CPT_A_MVT_CPT.Montant_Mvt) AS TOTAL
    FROM TBL_A_COMPTE INNER JOIN (TBL_DE_COMPTE INNER JOIN TBL_MVT_CPT_A_MVT_CPT ON TBL_DE_COMPTE.Num_Tel_D_CPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_D_CPTE) ON TBL_A_COMPTE.Num_Tel_A_COMPTE = TBL_MVT_CPT_A_MVT_CPT.Num_Tel_A_COMPTE
    GROUP BY TBL_MVT_CPT_A_MVT_CPT.Date_Mvt, TBL_DE_COMPTE.Nom_PDV_D_CPTE, TBL_DE_COMPTE.Prenom_PDV_D_CPTE, TBL_A_COMPTE.Nom_PDV, TBL_A_COMPTE.Prenom_PDV, TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt
    HAVING (((TBL_MVT_CPT_A_MVT_CPT.Date_Mvt)=[DONNER LA DATE MVT]) AND ((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM DE CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[DONNER PRENOM DE CPT]) AND ((TBL_MVT_CPT_A_MVT_CPT.Sens_Mvt) In ('Retour','Envoi'))) OR (((TBL_DE_COMPTE.Nom_PDV_D_CPTE)=[DONNER NOM A CPTE]) AND ((TBL_DE_COMPTE.Prenom_PDV_D_CPTE)=[PRENOM A CPTE]));
    0
    1. Bonjour,
      En principe tu ne peux pas faire des calculs entre "2 étages" d'une requête, ou d'un formulaire ou état, parce que Access considère les enregistrements comme indépendants. La seule chose que tu puisses envisager est des regroupements, par exemple par période, semaine, mois, année, etc, et de faire des cumuls sur ces périodes avec la fonction "sum()" mais pas des différences entre 2 enregistrements. Ou alors, si tu trouves une astuce..., je suis aussi preneur...
      0
      1. Bonjour Tessel75
        On peut calculer le cumul des enregistrements au fur a mesurea condition qu'il n y est pas de trou dans les n° d'enregistrement. Là c'est le N° de list.
        On additionne les enregistrements
        Cumul: SomDom("Tonnage";"T_Tonnage";"N°List <=" & [N°List])
        On soustrait les enregistrements
        Cumul: SomDom("Tonnage";"T_Tonnage";"N°List >=" & [N°List])
        0
      2. @castoursBonjour Castours,
        Merci pour tes indications. Je ne connaissais pas ces écritures, ni même qu'elles étaient possibles.
        0
      3. @castoursBonjour Castours,
        Comment puis-je utilisé la formule suivante: Cumul: SomDom("Tonnage";"T_Tonnage";"N°List >=" & [N°List]) dans ma requête.
        Cordialement,
        0
      4. @kotor70Bonjour
        par exemple dans une table tu creais 3 champs.
        N°List [clé primaire] en N° auto
        Cumul et tonnage en numerique
        Date saisie champ date
        Tu y mets quelques enregistrements.
        Tu fais une requete sur tous les champs
        en mode creation requete, sur cumul , tu ajoutes ceci:
        Les tonnages s'ajoutes sur chaques enregistrements
        Cumul: SomDom("Tonnage";"T_Tonnage";"N°List <=" & [N°List])
        0
    2. bonjour,
      Est il possible (et comment)de lancer séparément les deux requêtes à partir de code VB(exécution requête sélection à partir de VB) et récupérer dans deux variables les valeurs à du champ TOTAL et ensuite faire la différence des deux variables.
      Cordialement,
      0
      1. Bonjour,
        J'ai pu récupéré la valeur du champ dans une variable en VBA avec une requête sélection simple. Mais dans mon cas précis la requête a une clause HAIVING,donc au chargement de l'etat le message d'erreur suivant s'affiche: "Erreur d'execution 3061 Trop peu de paramètres.5 attendu."
        Cordialement
        0