Accueil > Forum > > > > TRI SQL (avec plus de détail
TRI SQL (avec plus de détail
vendredi 15 décembre 2006 à 13:42:00 |
TRI SQL (avec plus de détail

75ROLLER
|
Bon la dernière fois je n'ai pas été clair dans ma demande d aide, alors je vais essayé de l être.
Je me sers de VB6, avec une base access,pour aceder a cette base je me sers du contrôle ADO.
L interface graphique contien deux datacombo le premier pour les fournisseurs le deuxième pour le mode de paiement (cheque,CB.etc). l interface à un label pour faire la somme de tous les produits d'un fournisseur sélectionné dans un datacombo (tous mode de paiement confondus) la deuxieme etape et quand je selectionne le mode de paiement donc (cheque ou CB ou especes) que la somme de ce meme fournisseur avec le mode de paiement selectionne me face le somme et me l inscrive dans le label.
Je vais mettre un exemple
Fournisseur = TOTO et TITI TOTO= 2 produits 1 à 10¤ avec un mode de paiement par cheque et l autre a 20¤ en CB,
TITI = trois produits le premier a 12¤ en cheque le second a 24¤ en CB le troisieme a 12¤ aussi en CB
Quand je choisi dans le datacombo fournisseur TOTO dans le label il m affiche la somme de 30¤ et dans la deuxieme datacombo (mode de paiement) quand je choisi CB il m affiche 20¤ bien sur dans le meme label
La meme chose pour titi.
|
|
vendredi 15 décembre 2006 à 23:27:09 |
Re : TRI SQL (avec plus de détail

chaibat05
|
Bonsoir,
A chaque modification du text de ta combo mode de paiement, tu appelle une procédure avec : xFournisseur =ComboFournisseurs.Text cMode=ComboMode.Text
>° ° liaison d' un recordset à une requête de type:
"SELECT TaTable.IdFournisseur, " - & "Sum(IIf([TaTable]![ModePaiement]='cheque', " _ & "[TaTable]![SommeVersee],0)) AS cheque, " _ & "Sum(IIf([TaTable]![ModePaiement]='CB', " _ & "[TaTable]![SommeVersee],0)) AS CB, " _ & "Sum(IIf([TaTable]![ModePaiement]='especes', " _ & "[TaTable]![SommeVersee],0)) AS especes " _ & "FROM TaTable GROUP BY TaTable.IdFournisseur;"
> MonRs.FindFirst "[IdFournisseur] LIKE '" & xFournisseur & _ "' AND [ModePaiement] LIKE '" & cMode & "'"
> tu testes If MonRs.NoMatch 'pas d' enregistrement Label.Caption=0 Else If cMode="cheque" Then Label.Caption=MonRs![cheque] ElseIf cMode="CB" Then Label.Caption=MonRs![CB] ElseIf cMode="especes" Then Label.Caption=MonRs![especes] ElseIf cMode="Tout" Then 'pour le ^^tout mode de paiement confondu Label.Caption=MonRs![cheque]+MonRs![CB]+MonRs![especes] End If End If
...
|
|
samedi 16 décembre 2006 à 13:12:47 |
Re : TRI SQL (avec plus de détail

75ROLLER
|
salut, l'ami ça se bouscule pas au portillon pour me répondre.
je vais fair le test de ton code A+
|
|
samedi 16 décembre 2006 à 13:36:27 |
Re : TRI SQL (avec plus de détail

75ROLLER
|
bon,j ai testé ton code il ne fonctionne pas,
peut-être je peux te montrer la source?? ça en inspire certains.
Private Sub afficheRequete()
'fair la somme en fonction du fournisseur
On Error GoTo erreur1
sql = "SELECT fournisseur, Sum(prix_achat)AS Totalachat FROM table_achat WHERE fournisseur= '" & DataCombo2.Text & "'GROUP by fournisseur"
Set rst = conn.Execute(sql)
Totalachat = Val(rst("Totalachat"))
Label15.Caption = rst("Totalachat")
rst.Close
erreur1:
If Err = "3021" Then
Label15.Caption = ""
MsgBox "Plus d 'enregistrement pour ce mode de paiment", vbExclamation
End If
End Sub
je peus envoyer plus de code source ci vous voulez
|
|
samedi 16 décembre 2006 à 15:37:51 |
Re : TRI SQL (avec plus de détail

chaibat05
|
Ou est le Mode règlement ?
Private Sub afficheRequete() ' fair la somme en fonction du fournisseur On Error GoTo erreur1 sql = "SELECT fournisseur, Sum(prix_achat) AS Totalachat " _ FROM table_achat WHERE fournisseur = '" & DataCombo2.Text & _ "'GROUP by fournisseur" Set rst = conn.Execute(sql) ? Totalachat = Val(rst("Totalachat")) Label15.Caption = rst("Totalachat") rst.Close
Exit Sub 'manquant ; normal qu' il ne t' affiche rien en plus du msgbox erreur1: If Err = "3021" Then Label15.Caption = "" MsgBox "Plus d 'enregistrement pour ce mode de paiment", vbExclamation End If End Sub
... plutôt...
sql="SELECT [table_achat]![Fournisseur], " _ & "Sum([table_achat]![prix_achat]) AS Totalachat " _ & "Sum(IIf([table_achat]![ModePaiement]='cheque', " _ & "[table_achat]![prix_achat],0)) AS cheque, " _ & "Sum(IIf([table_achat]![ModePaiement]='CB', " _ & "[table_achat]![prix_achat],0)) AS CB, " _ & "Sum(IIf([table_achat]![ModePaiement]='especes', " _ & "[table_achat]![prix_achat],0)) AS especes " _ & "FROM table_achat GROUP BY table_achat.Fournisseur;"
résultat pour fournisseur F1 >champs de la table > champs générés Fournis prix_achat Mode cheque CB especes F1 25.00 CB 0.00 25.00 0.00 F1 80.00 especes 0.00 0.00 80.00 F1 55.00 cheque 55.00 0.00 0.00 F1 90.00 CB 0.00 90.00 0.00 F1 75.00 cheque 75.00 0.00 0.00 F1 30.00 especes 0.00 0.00 30.00 ------------------------------------------------------------------------------------------- F1 355.00 130.00 115.00 110.00 ---------------------------------------------------------------------------------------------
En plus avec cette requête tu peux avoir tout les modes d' un coup et sans passer par la sélection du DataComboMode Il suffit de sélectionner un fournisseur et puis c' est tout...
xFournisseur=ComboFournisseur.Text 'revoir la synthaxe si le fournisseur est numérique
rs.FindFirst "[Fournisseur] LIKE '" & xFournisseur & "'" If Not (rs.NoMach) Lable1.caption=rs![Totalachat] Lable2.caption=rs![cheque] Lable3.caption=rs![CB] Lable4.caption=rs![especes] End If
|
|
samedi 16 décembre 2006 à 16:08:48 |
Re : TRI SQL (avec plus de détail

75ROLLER
|
Ha ha, je sens que la solution ce rapprochée.
je te renvois la source, j ai un message d'erreur
comme quoi la reqete et mal orthographié.je cheche de mon cote, je t envois le code avec ta requete
Public Sub Form_Load()
menuImpri.Enabled = False
Adof.ConnectionString = conectString
Adof.RecordSource = "table_fournisseur"
Adof.Refresh
Adopaiment.ConnectionString = conectString
Adopaiment.RecordSource = "table_paiment"
Adopaiment.Refresh
AdoAchat.ConnectionString = conectString
AdoAchat.RecordSource = " select*from table_achat "
AdoAchat.Refresh
'requete composé pour le Produit
requeteProduit = "SELECT table_achat.* FROM table_achat WHERE table_achat.mode_p "
ResultatCritereProduit
End Sub
Private Sub ResultatCritereProduit()
'Critere sur fournisseur
If Not DataCombo2.Text = "" Then
reqfourni = "AND table_achat.fournisseur = '" & DataCombo2.Text & "'"
afficheRequete
Else
reqfourni = ""
End If
'critere sur le mode de paiment
If Not DataCombo1.Text = "" Then
categProduit = "AND table_achat.mode_p = '" & DataCombo1.Text & "'"
Else
categProduit = ""
End If
'sert a passer la variable combotext au sous programme afficheRequete
If Not DataCombo1.Text = "" Then
combotext = DataCombo1.Text
afficheRequete
Else
combotext = ""
End If
'critere sur le prix mini
If Not Text1.Text = "" Then
If Asc(Text1.Text) >= 48 And Asc(Text1.Text) <= 57 Then
prixMinProduit = " AND prix_achat >= " & Text1.Text
Label15.Caption = ""
Else
MsgBox "Entrée des chiffres", vbExclamation
Text1.Text = ""
Text1.SetFocus
End If
Else
prixMinProduit = ""
End If
'critere sur le prix max
If Not Text2.Text = "" Then
If Asc(Text2.Text) >= 48 And Asc(Text2.Text) <= 57 Then
prixMaxProduit = " AND prix_achat <= " & Text2.Text
Label15.Caption = ""
Else
MsgBox "Entrée des chiffres", vbExclamation
Text2.Text = ""
Text2.SetFocus
End If
Else
prixMaxProduit = ""
End If
'Affectation de la requete a l'ado lié a la table_achat pour le tri
AdoAchat.RecordSource = requeteProduit + categProduit + reqfourni + prixMinProduit + prixMaxProduit
AdoAchat.Refresh
Label13.Caption = AdoAchat.Recordset.RecordCount
End Sub
Private Sub afficheRequete()
'fair la somme en fonction du fournisseur
'On Error GoTo erreur1
' sql = "SELECT fournisseur, Sum(prix_achat)AS Totalachat FROM table_achat WHERE fournisseur= '" & DataCombo2.Text & "'GROUP by fournisseur"
sql = "SELECT [table_achat]![Fournisseur], " _
& "Sum([table_achat]![prix_achat]) AS Totalachat " _
& "Sum(IIf([table_achat]![Mode_Paiement]='cheque', " _
& "[table_achat]![prix_achat],0)) AS cheque, " _
& "Sum(IIf([table_achat]![Mode_Paiement]='CB', " _
& "[table_achat]![prix_achat],0)) AS CB, " _
& "Sum(IIf([table_achat]![Mode_Paiement]='especes', " _
& "[table_achat]![prix_achat],0)) AS especes " _
& "FROM table_achat GROUP BY table_achat.Fournisseur;"
Set rst = conn.Execute(sql)
Totalachat = Val(rst("Totalachat"))
Label15.Caption = rst("Totalachat")
rst.Close
erreur1:
If Err = "3021" Then
Label15.Caption = ""
MsgBox "Plus d 'enregistrement pour ce mode de paiment", vbExclamation
End If
End Sub
je suis désoler de la presentation mais je n arrive pas a le fair correctement
|
|
samedi 16 décembre 2006 à 16:16:43 |
Re : TRI SQL (avec plus de détail

75ROLLER
|
ha oui, je t ait répondu un peu vite par rapport a mon interface graphique je prefere ma solution
(que le mode de paiement sa dans la combo) donc si tu peus
|
|
samedi 16 décembre 2006 à 17:03:17 |
Re : TRI SQL (avec plus de détail

75ROLLER
|
ton premier code correspond a ma recherche je t envois ce code une fois les modification fait
Public Sub Form_Load()
menuImpri.Enabled = False
Adof.ConnectionString = conectString
Adof.RecordSource = "table_fournisseur"
Adof.Refresh
Adopaiment.ConnectionString = conectString
Adopaiment.RecordSource = "table_paiment"
Adopaiment.Refresh
AdoAchat.ConnectionString = conectString
AdoAchat.RecordSource = " select*from table_achat "
AdoAchat.Refresh
'requete composé pour le Produit
requeteProduit = "SELECT table_achat.* FROM table_achat WHERE table_achat.mode_p "
ResultatCritereProduit
End Sub
Private Sub ResultatCritereProduit()
'Critere sur fournisseur
If Not DataCombo2.Text = "" Then
reqfourni = "AND table_achat.fournisseur = '" & DataCombo2.Text & "'"
afficheRequete
Else
reqfourni = ""
End If
'critere sur le mode de paiment
If Not DataCombo1.Text = "" Then
categProduit = "AND table_achat.mode_p = '" & DataCombo1.Text & "'"
Else
categProduit = ""
End If
'sert a passer la variable combotext au sous programme afficheRequete
If Not DataCombo1.Text = "" Then
combotext = DataCombo1.Text
afficheRequete
Else
combotext = ""
End If
'critere sur le prix mini
If Not Text1.Text = "" Then
If Asc(Text1.Text) >= 48 And Asc(Text1.Text) <= 57 Then
prixMinProduit = " AND prix_achat >= " & Text1.Text
Label15.Caption = ""
Else
MsgBox "Entrée des chiffres", vbExclamation
Text1.Text = ""
Text1.SetFocus
End If
Else
prixMinProduit = ""
End If
'critere sur le prix max
If Not Text2.Text = "" Then
If Asc(Text2.Text) >= 48 And Asc(Text2.Text) <= 57 Then
prixMaxProduit = " AND prix_achat <= " & Text2.Text
Label15.Caption = ""
Else
MsgBox "Entrée des chiffres", vbExclamation
Text2.Text = ""
Text2.SetFocus
End If
Else
prixMaxProduit = ""
End If
'Affectation de la requete a l'ado lié a la table_achat pour le tri
AdoAchat.RecordSource = requeteProduit + categProduit + reqfourni + prixMinProduit + prixMaxProduit
AdoAchat.Refresh
Label13.Caption = AdoAchat.Recordset.RecordCount
End Sub
Private Sub afficheRequete()
sql = "SELECT Table_achat.Fournisseur, " _
& "Sum(IIf([Table_achat]![Mode_Paiement]='cheque', " _
& "[Table_achat]![SommeVersee],0)) AS cheque, " _
& "Sum(IIf([Table_achat]![ModePaiement]='CB', " _
& "[Table_achat]![SommeVersee],0)) AS CB, " _
& "Sum(IIf([Table_achat]![ModePaiement]='especes', " _
& "[Table_achat]![SommeVersee],0)) AS especes " _
& "FROM TaTable GROUP BY TaTable.IdFournisseur;"
rst.Find "[Fournisseur] LIKE '" & DataCombo2.Text & _
"' AND [Mode_Paiement] LIKE '" & DataCombo1.Text & "'"
'tu testes
If rst.NoMatch Then
'pas d' enregistrement
Label.Caption = 0
Else
If DataCombo1.Text = "cheque" Then
Label15.Caption = rst![cheque]
ElseIf DataCombo1.Text = "CB" Then
Label15.Caption = rst![CB]
ElseIf DataCombo1.Text = "especes" Then
Label15.Caption = rst![especes]
ElseIf DataCombo1.Text = "Tout" Then
'pour le ^^tout mode de paiement confondu
Label15.Caption = rst![cheque] + rst![CB] + rst![especes]
End If
End If
erreur1:
If Err = "3021" Then
Label15.Caption = ""
MsgBox "Plus d 'enregistrement pour ce mode de paiment", vbExclamation
End If
End Sub
|
|
samedi 16 décembre 2006 à 17:55:33 |
Re : TRI SQL (avec plus de détail

chaibat05
|
travailles un peu la mise en page, j' ai du mal avec le mode linéaire. Réécris tes procédures correctement stp.
|
|
dimanche 17 décembre 2006 à 12:06:08 |
Re : TRI SQL (avec plus de détail

75ROLLER
|
je n arrive pas a bien presenter mon texte ta raison vraiment décourageant un vrai charabia
desoler je ne sais pas comment les autres fond pour biens le presenter leur code
|
|
Cette discussion est classée dans : mode, datacombo, cb, paiement, cheque
Répondre à ce message
Sujets en rapport avec ce message
Unbound DBGRID [ par Pat ]
Salut, j'utilise un dbgrid en mode Unbound et j'ai mis un boutton Annuler au cas où un usager veut annuler ses modifications. Lorsqu' il ajoute une
Executer un prog en mode exclusif [ par bs95 ]
Tout d'abord je voulias vous dire que votre site est genialVoici le fichier batch suivant :****************Mono.exeif exist Ok.tst goto endbtrieve /p:
VB6 ef FTP [ par Mikey ]
Comment envoyer un fichier par FTP en mode ASCII grâce à VB?J'utilise le composant Inet avec la fonction Execute FTPURL,"SEND file1 file2" mais le fic
Afficher DataReport de VB6 en mode paysage [ par Gbrissot ]
Bonjour,j'aimerais savoir si il est possible à partir du DataReport disponible dans VB6 de faire des DataReport au format paysage.Pourriez vous m'aide
Sélection multi-lignes dans un DbGrid [ par Badol Bacle ]
Bonjour,Je connais assez bien le contrôle DbGrid (DbGrid32.ocx) disponible dans VB depuis VB4-32. Pour corriger ses nombreux bugs j'ai encapsulé tout
changer le nombre de couleur sous windows [ par vbfoxpro ]
j'aimerais savoir comment, avec vb6, passer du mode 256 couleurs au mode 16 bit .... merci d'avance, Amicalement vbfoxpro
Probleme mode passif par FTP [ par Fred ]
Bonjour,Je n'arrive pas à valider le mode passive sous FTP. Ou plus je ne trouve pas cette option.J'utile le contrôle Inet1 sous Visual Basic 6.Avez-v
redimensionner un controle en mode exécution [ par h ]
Est-il possible de redimensionner un controle quelconque (label, textbox,...) à l'aide de la souris lors de l'éxécution de l'éxécutable qui le contien
Utilisation du listbox [ par Frostbyte ]
J'aimerais savoir comment faire quand j'appuie sur un bouton (Command1), je voudrais que le 1e element de la listbox (en mode selection (vbchecked ou
Livres en rapport
|
Derniers Blogs
PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc [HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] SLIDES ET DéMOS : AUTOUR DU W3C , NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Très bonne après-midi passée lors cette conférence avec le W3C, organisée par L' Inria sur les nouveaux standards, ce Mardi 14 Février, on sent vraiment que çà bosse au W3C, et l'avenir est très très prometteur pour le HTML5, notamment ...
Cliquez pour lire la suite de l'article par Gio GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc
Forum
RE : FONCTION EXCELRE : FONCTION EXCEL par bigfish_le vrai
Cliquez pour lire la suite par bigfish_le vrai RE : FONCTION EXCELRE : FONCTION EXCEL par bigfish_le vrai
Cliquez pour lire la suite par bigfish_le vrai FONCTION EXCELFONCTION EXCEL par samanta26
Cliquez pour lire la suite par samanta26
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|