Difference de deux valeurs d'un meme champ

Fermé
kotor70 Messages postés 11 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 14 janvier 2016 - 2 mars 2015 à 15:43
 kotor70 - 13 mars 2015 à 11:17
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

Bonjour,
Et bien tu écris pour la valeur de ContrôleTotal = ContrôleA - ContrôleB où est le problème?
0
kotor70 Messages postés 11 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 14 janvier 2016
2 mars 2015 à 18:10
j'ai cree une zone text sur l'etat :

Deficit=TOTAL-TOTAL ne donne pas de bonne reponse
0
Tessel75 > kotor70 Messages postés 11 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 14 janvier 2016
2 mars 2015 à 20:57
ç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
kotor70 Messages postés 11 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 14 janvier 2016
3 mars 2015 à 14:40
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
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217 > kotor70 Messages postés 11 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 14 janvier 2016
5 mars 2015 à 09:22
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
kotor70 Messages postés 11 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 14 janvier 2016
4 mars 2015 à 16:57
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
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
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
4 mars 2015 à 22:38
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
Tessel75 > castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019
5 mars 2015 à 11:26
Bonjour Castours,
Merci pour tes indications. Je ne connaissais pas ces écritures, ni même qu'elles étaient possibles.
0
kotor70 Messages postés 11 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 14 janvier 2016 > castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019
5 mars 2015 à 15:00
Bonjour Castours,
Comment puis-je utilisé la formule suivante: Cumul: SomDom("Tonnage";"T_Tonnage";"N°List >=" & [N°List]) dans ma requête.
Cordialement,
0
castours > kotor70 Messages postés 11 Date d'inscription lundi 2 mars 2015 Statut Membre Dernière intervention 14 janvier 2016
5 mars 2015 à 17:47
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
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

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

Posez votre question
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