Remplir msflexgrid avec 2 requetes en vb6

Messages postés
24
Date d'inscription
lundi 1 mars 2010
Statut
Membre
Dernière intervention
11 novembre 2012
- - Dernière 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
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
Afficher la suite 

1 réponse

Messages postés
95
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
28 novembre 2017
0
Merci
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
Commenter la réponse de AlKatou