Remplir msflexgrid avec 2 requetes en vb6

chaima01 Messages postés 24 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 11 novembre 2012 - 24 mai 2011 à 13:59
AlKatou Messages postés 95 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 28 novembre 2017 - 24 mai 2011 à 18:44
bonjour ,
j'ai un msflexgrid et je veux le remplir par 2 requetes.
voici mon essai:
Rs.Open "select * from projet ", Cnn, adOpenKeyset, adLockOptimistic
   If Rs.RecordCount > 0 Then
     i = 1
     Rs.AbsolutePosition = 1
     MSFlexGrid1.Rows = 1
     Do While Not Rs.EOF
      MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
       MSFlexGrid1.TextMatrix(i, 1) = Rs.Fields("code_projet")
       MSFlexGrid1.TextMatrix(i, 2) = Rs.Fields("designation_projet")
       MSFlexGrid1.TextMatrix(i, 3) = Rs.Fields("Lot1")
       MSFlexGrid1.TextMatrix(i, 4) = Rs.Fields("Lot2")
       MSFlexGrid1.TextMatrix(i, 5) = Rs.Fields("date_bon_commande")
       MSFlexGrid1.TextMatrix(i, 6) = Rs.Fields("typ_projet")
           
     
  rs2.Open "select * from type_projet where typ_projet = '" & MSFlexGrid1.TextMatrix(i, 6) & "'", Cnn, adOpenKeyset, adLockOptimistic
      If rs2.RecordCount > 0 Then
     i = 1
    rs2.AbsolutePosition = 1
    MSFlexGrid1.Rows = 1
         Do While Not rs2.EOF
       MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1

         MSFlexGrid1.TextMatrix(i, 6) = rs2.Fields("description")
           rs2.MoveNext
         Loop
        End If
        rs2.Close
        i = i + 1
           Rs.MoveNext
      
       Loop
        End If
      Rs.Close


le problème c'est que seulement le champ type_projet qui contient la description qui se rempli
et les autres champs sont vide.
SVP aider moi

1 réponse

AlKatou Messages postés 95 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 28 novembre 2017
24 mai 2011 à 18:44
salut,

le language SQL permet d'effectuer des connections entre tables appelées jointures. partant de là, au vue de tes 2 requêtes tu pouvais en faire qu'une seule. de cette façon, tu n'auras qu'une boucle de chargement

voici comment :
SELECT * 
FROM PROJET LEFT JOIN TYPE_PROJET 
  ON PROJET.typ_projet = TYPE_PROJET.typ_projet

pour résumer, je prend tous les enregistrements de la table Projet, on y associe les enregistrement de la table TYPE_PROJET pour lesquels PROJET.typ_projet = TYPE_PROJET.typ_projet.

maintenant, à la place du "SELECT *", fais un Select de tes champs à afficher, tu y gagneras en ressources système.


bonne continuation, alKa
0
Rejoignez-nous