Difference de deux valeurs d'un meme champ

kotor70 Messages postés 11 Statut Membre -  
 kotor70 -
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. Tessel75
     
    Bonjour,
    Et bien tu écris pour la valeur de ContrôleTotal = ContrôleA - ContrôleB où est le problème?
    0
    1. kotor70 Messages postés 11 Statut Membre
       
      j'ai cree une zone text sur l'etat :

      Deficit=TOTAL-TOTAL ne donne pas de bonne reponse
      0
      1. Tessel75 > kotor70 Messages postés 11 Statut Membre
         
        ç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
    2. kotor70 Messages postés 11 Statut Membre
       
      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
      1. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217 > kotor70 Messages postés 11 Statut Membre
         
        Bonjour
        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. kotor70 Messages postés 11 Statut Membre
     
    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
  3. Tessel75
     
    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. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
       
      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
      1. Tessel75 > castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour Castours,
        Merci pour tes indications. Je ne connaissais pas ces écritures, ni même qu'elles étaient possibles.
        0
      2. kotor70 Messages postés 11 Statut Membre > castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour Castours,
        Comment puis-je utilisé la formule suivante: Cumul: SomDom("Tonnage";"T_Tonnage";"N°List >=" & [N°List]) dans ma requête.
        Cordialement,
        0
      3. castours > kotor70 Messages postés 11 Statut Membre
         
        Bonjour
        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
  4. kotor70
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kotor70
     
    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