Listview dans VB6 + requette SQL

najsoussi Messages postés 16 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 avril 2010 - 15 avril 2010 à 19:21
najsoussi Messages postés 16 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 avril 2010 - 16 avril 2010 à 00:16
Bonjour
j'ai besoin d'afficher une requette SQL dans un listview
cette requette est
select A, B, C, A*B/C as KOSU from table1 T, table2 R where T.equipe=R.equipe
j'ai besoin d'afficher A, B, C, KOSU dans la listview
j'ai réussi d'afficher juste des champs de la mm table
mais pas les autres
pouvez vous s'il vous plait

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 avril 2010 à 20:11
Salut

Tu as réussi, mais tu n'as pas réussi.
"j'ai réussi d'afficher juste des champs de la mm table" : Ce sont lesquels, dans ta requète ?

Si tu as commencé quelque chose, montre-le (grace à la coloration syntaxique = 3ème icone à droite)
On te dira comment compléter

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
najsoussi Messages postés 16 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 avril 2010
15 avril 2010 à 20:35
Merci Jack
ok je veux vous montrer l'exemple
ben j'ai une table (produire) qui contient 7 champs liée à une autre table (régime_horaire)(contient 2 champs )
dans la listview je veux afficher le 7 champs de la première table et le champs de la deuxième table et un autre champs le résultat d'un calcul
(temps*nbre opérateurs /quantité)
Private Sub ListP_Click()
Dim i As Integer
On Error GoTo err
i = ListP.SelectedItem.Index
Liste_date.Text = ListP.ListItems(i).Text
Liste_équipe.Text = ListP.ListItems(i).ListSubItems.Item(1).Text
Liste_ilot.Text = ListP.ListItems(i).ListSubItems.Item(2).Text
Liste_séance.Text = ListP.ListItems(i).ListSubItems.Item(3).Text
temps.Text = ListP.ListItems(i).ListSubItems.Item(4).Text
nombreop.Text = ListP.ListItems(i).ListSubItems.Item(5).Text
Liste_produit.Text = ListP.ListItems(i).ListSubItems.Item(6).Text
quantité.Text = ListP.ListItems(i).ListSubItems.Item(7).Text
Valider.Enabled = False
Supprimer.Enabled = True
Modifier.Enabled = True
err:
End Sub
( le champs (temps) qui vient de la deuxième table que je veus l'insérer)
ben dans la procédure de refraichement je fais
Private Sub Refreche()
Call Connect
ListP.ListItems.Clear
Rs.Open "[PRODUIRE]", Db, adOpenKeyset, adLockOptimistic
While Not Rs.EOF
Set ItemX = ListP.ListItems.Add(, , Rs.Fields("DATE_PROD"))
ItemX.SubItems(1) = Rs.Fields("DESIG_EQUIPE")
ItemX.SubItems(2) = Rs.Fields("CODE_ILOT")
ItemX.SubItems(3) = Rs.Fields("DESIG_SEANCE")

ItemX.SubItems(4) = Rs.Fields("NOMBRE_OPERATEUR")
ItemX.SubItems(5) = Rs.Fields("CODE_PRODUIT")
ItemX.SubItems(6) = Rs.Fields("QANTITE_PRODUITE")

Rs.MoveNext
Wend
Call Deconnect
et donc avec ce code j'ai réussi à afficher juste les champs de la première table ( le code je l'ai pris d'un code téléchargé de ce site)
mais comment faire pour afficher le champs de la deuxième table et le plus important ce le champs calculé
j'ai essayer d'ajouter ( call connect
ListP.ListItems.Clear
Rs.Open "[REGIME_HORAIRE]", Db, adOpenKeyset, adLockOptimistic
While Not Rs.EOF
ItemX.SubItems(4) = Rs.Fields("TEMPS_OUVERTURE")
Rs.MoveNext
wend
call deconnect
mais ca na pas marché
voila
j'ai besoin d'aide s'il vous plait
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 avril 2010 à 23:59
Ok
Dommage que tu n'aies pas utilisé la coloration syntaxique, c'est vraiment chiant à lire.

Tu n'as pas dû beaucoup charger de codes qui parlent de DB car tu aurais vu comment se fait une requete et comment lire, en toute sécurité, les données récupérées (pense aux cas où ta requte ne renvoie rien, tu auras des erreurs).

Pour faire une requete correcte, il faut savoir quel est le lien entre les champs.
Nous, on en sait rien.
On a découvert le nom des champs de la première table, mais :
- quels sont ceux de la seconde table ?
- quel(s) champ(s) permet(tent) de faire la relation entre les deux ?

Une requète permettant de regrouper les champs de 2 tables peut ressembler à ça (syntaxe qu'on retrouve dans n'importe quel code qui gère des tables de DB) :
Select T1.Champ1, T1.Champ2, T2.Champ1, (T1.Champ3 / T2.Champ18) As monAlias
  From Table1 T1, Table2 T2
 Where T1.Champ1 = T2.Champ1
Et tu donnes ça à manger à ton RecordSet et tu as toutes tes données à mettre dans ta ListView

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
najsoussi Messages postés 16 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 avril 2010
16 avril 2010 à 00:16
merci Jack pour ta réponse
dsl pour la coloration
wé j'ai donné à manger pour le recordset (une requete )
mais là j'ai une erreur qui dit erreur de syntaxe dans la close from
j'ai essayé de mettre mes tables entre cochets mais tjrs le mm problème
voici la requete
Rs.Open "SELECT T1.DATE_PROD, T1.DESIG_EQUIPE, T1.CODE_ILOT, T1.DESIG_SEANCE, T1.NOMBRE_OPERATEUR, T1.CODE_PRODUIT, T1.QANTITE_PRODUITE, T2.TEMPS_D_OUVERTURE, T2.Temps_D_OUVERTURE *T1.NOMBRE_OPERATEUR/T1.QANTITE_PRODUITE AS KOSU FROM PRODUIRE T1 JOIN REGIME_HORAIRE T2 ON (T1.DESIG_SEANCE = T2.DESIG_SEANCE) ", Db, adOpenKeyset, adLockOptimistic
0
Rejoignez-nous