|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : TRI SQL (avec plus de détail [ Base de données / SQL ] (75ROLLER)
Informations & options pour cette discussion
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é 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
|
Téléchargements
Logiciels à télécharger sur le même thème :
|