Aidez-moi les experts j'ai besoin de vous

Résolu
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016 - 11 juin 2012 à 17:14
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016 - 14 juin 2012 à 11:18
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

Utilisateur anonyme
13 juin 2012 à 08:03
Tu peux insérer un test :
if dgv.rows(i).cells(numero_colonne_ordre).value = 1 then
   Somme += dgv.Rows(i).Cells(5).Value
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 juin 2012 à 17:21
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
0
Utilisateur anonyme
11 juin 2012 à 17:24
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.
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
11 juin 2012 à 17:43
Bonjour,
merci bcp mes amis mais j'ai pas bien compris votre approche cmarcotte.

galaxy2009
0

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

Posez votre question
Utilisateur anonyme
11 juin 2012 à 19:26
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 ?
0
Utilisateur anonyme
11 juin 2012 à 19:27
Je me suis mal exprimé : tu devrais ne faire la somme que sur les lignes où 'order_versement' = 1
0
Utilisateur anonyme
11 juin 2012 à 23:06
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
0
debutemps Messages postés 34 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 14 juin 2012 1
12 juin 2012 à 09:03
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
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
12 juin 2012 à 18:10
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
13 juin 2012 à 08:22
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
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
13 juin 2012 à 09:06
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   
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
13 juin 2012 à 17:36
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
0
Utilisateur anonyme
13 juin 2012 à 19:58
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 ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
13 juin 2012 à 21:11
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
0
Utilisateur anonyme
14 juin 2012 à 02:19
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.
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
14 juin 2012 à 11:18
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
0
Rejoignez-nous