Aidez-moi les experts j'ai besoin de vous [Résolu]

Signaler
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016
-
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016
-
Bonjour,
ce problème est déjà posté mais personne n'au pu m'aider, alors je reviens vers vous encore une fois tout en souhaitant me porter la solution,

j'ai une datagridview qui est charger par une bindingsource, alors je fais la somme d'une colonne juqu'au ici pas de problème mais dans cette colonne il ya des chiffres qui se répète donc la somme est fausse, alors voilà un exemple des données charger dans ma datagridview :

n°cheque--------montant_cheque----ordre_versement----montant-versement

52245877-----------4000,00 -------- 1 -------- 1000,00
52245877-----------4000,00 -------- 2 -------- 1000,00
52245877-----------4000,00 -------- 3 -------- 500,00
52245877-----------4000,00 -------- 4 -------- 1500,00
36558914-----------6000,00 -------- 1 -------- 2000,00

Total-cheque: 22000,00 -------- Total-versement: 6000,00


alors le résultat de la somme des montants des chèques est faux parce que le bon résultat qui doit etre afficher est 10000,00 et non pas 22000,00.
alors ici rééllement j'ai seulement deux chèques et non pas 5, donc comment je peux résoudre cette problématique.

SVP aider moi

merci bcp.

galaxy2009

16 réponses


Tu peux insérer un test :
if dgv.rows(i).cells(numero_colonne_ordre).value = 1 then
   Somme += dgv.Rows(i).Cells(5).Value
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Bonjour,
Autrement dit : voilà un doublon fait de manière parfaitement consciente et délibérée.
Tapez le texte de l'url ici.
Et en plus, avec ce titre ... (très "révélateur du problème" !)



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Bonjour,

Comme je t'ai déjà dit, tu peux utiliser un Dataview. Tu mets ta table comme DataSource du DataView. À partir du DataView, tu fais une extraction sans doublon dans une nouvelle table. Tu mets ta nouvelle table SANS doublon comme DataSource du DataGridView. Toutes les informations sont dans l'aide.
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour,
merci bcp mes amis mais j'ai pas bien compris votre approche cmarcotte.

galaxy2009

Bonsoir,

Je ne vois pas où sont les doublons puisque tu as un champ 'ordre_versement'.
Pourquoi ne te servirais tu pas de ce champ pour déterminer tes doublons ?

Je me suis mal exprimé : tu devrais ne faire la somme que sur les lignes où 'order_versement' = 1

Bonjour,

Ce n'est pas la politique de la maison de fournir un code complet. On demande un peu d'efforts.

En plus de l'aide de VB qui contient probablement tout ce dont tu as besoin, incluant les exemples, tu peux aller voir là:

DataView

DatagridView
Messages postés
34
Date d'inscription
jeudi 7 juin 2012
Statut
Membre
Dernière intervention
14 juin 2012
1
Bonjour,
Dans ton argument sql de départ, quand tu fais le "select chequ.. from compt...." si tu rajoutes un "Select Distinct
che... from comp..."
alors tes données ne contiendront pas de doublons. (il faut essayer de résoudre le problème le plus en amont possible"


Lydie
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour,
alors comme j'ai fais dans l'exposition de mon probléme ma datagridview est allimentée à l'aide de l'assistant et non par code alors c'est pour ça que la solution avec une requete SQL ne marchera pas aussi voilà le code avec quoi je fais la somme de ma colonne

dim somme as double
For i As Double = 0 To dgv.Rows.Count - 1
Somme += dgv.Rows(i).Cells(5).Value
Next i

alors pour l'approche de banana32 comment je fais avec le code ci-dessus pour faire que la somme de ordre_versement= 1

merci

galaxy2009
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Ou encore (et si trié):
Dans la boucle for : ne totaliser (I-1 à partir de I = 1) que si N°cheque I <> du N°chèque I-1


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut
j'ai une datagridview qui est charger par une bindingsource, alors je fais la somme d'une colonne juqu'au ici pas de


mais si justemment le problème c'est au niveau
du sql qu'il faut proceder commme a dit débutemps

select distinct SUM(montantcheque)FROM Tablecheque   
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour,
je vous remercie beaucoup BANANA32 votre méthode ça marche nikel, mais j'ai un autre problème avec le tri, quand je fais un tri par date il se peut que le résultat affiché ne contient pas ordre_versement 1, alors comment je ferais pour résoudre ce problème. voilà un extrait du résultat :

52245877-----------4000,00 -------- 2 -------- 1000,00
52245877-----------4000,00 -------- 3 -------- 500,00
52245877-----------4000,00 -------- 4 -------- 1500,00
36558914-----------6000,00 -------- 1 -------- 2000,00
36558914-----------6000,00 -------- 2 -------- 3000,00

merci


galaxy2009

Du coup, ça ne correspond plus du tout à ton premier exemple.

Une question me vient à l'esprit : si tu élimines les doublons, tu n'auras donc plus qu'une date dans ton résultat final (celle de l'ordre de versement 1). Je ne vois donc pas pourquoi tu as besoin de faire un tri par date ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
Du coup, ça ne correspond plus du tout à ton premier exemple

Avis partagé !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Bonjour,

Tant qu'à utiliser un BindingSource, utilise le pour vrai. Ouvre ton aide
, retrouve l'article bindingsource, classe et prend le temps de comprendre les propriétés :

Filter : Pour filtrer les données et faire des calculs sur les données filtrées
Sort : Pour définir le tri
SortDirection : Pour définir l'ordre de tri
SupportAdvancedSorting : Pour trier sur plusieurs colonnes

Si tu ne réussis pas à bâtir une instruction SQL pour interroger directement ta source de données, ton BindigSource te donne tout ce dont tu as besoin.
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour,
alors mon dernier problème c'est que je fais un autre tri sur la date de création des versements pour voir les versement d'une journée par exemple ou d'une période donnée donc dans le résultat de mon tri doit etre affiché tous les versements crées dans la période choisie par l'utilisateur.

merci.


galaxy2009