begin process at 2012 02 16 16:43:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Base de données

 > 

SQL

 > 

TRI SQL (avec plus de détail


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

1 2 3

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales