Remplir un DataGrid en fonction d'un ComboBox

coaut Messages postés 23 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 27 juillet 2011 - 4 mars 2011 à 18:51
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 - 7 mars 2011 à 08:06
Bonjour,
je suis un débutant en Visual Basic 6 et j’ai un projet à faire sur la Gestion d’un Club OmniSport.
Je vous récapitule l’essentiel,
je dispose d’une base de donné Access qui comprend : une table Adhérent, une table Dossier médical, une table Médecin, une table Pratiquer, une table Règlements, une table Paramètre et une table Sport.
J’aurais besoin d’un coup de main pour remplir un DataGrid en fonction d’un ComboBox.
Le ComboBox contient les libellés sport qui se situent dans la table Sport. Celui-ci est déjà fait :
'On fait une requête pour récupérer les lib sport
Dim chsql as String
chsql = " SELECT [lib sport] FROM [sport]"
Dim RsLibSport As ADODB.Recordset
'Exécution de la requête
Set RsLibSport = Cnxsports.Execute(chsql)
Do While RsLibSport.EOF = False
'On ajoute les lib sport à la liste
ComboLibSports.AddItem RsLibSport("lib sport")
'On passe à l'enregistrement suivant
RsLibSport.MoveNext
Loop
Le but du DataGrid est d’afficher les adhérents qui pratiquent le sport sélectionné dans le ComboBox.
Je ne sais pas comment procéder pour afficher les adhérents en fonction d’un ComboBox.
Vous auriez une idée ?
Merci d’avance.

6 réponses

NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
4 mars 2011 à 19:59
Bonjour,

Tu as regardé la clause WHERE des requêtes SQL ?

0
coaut Messages postés 23 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 27 juillet 2011
4 mars 2011 à 21:06
Oui je me doute bien qu'il faudra utiliser la clause WHERE en SQL mais je ne sais pas comment y procéder avec un DataGrid en fonction du Combobox.
C'est cela mon problème, sinon faire le lien en SQL j'y arrive.
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
4 mars 2011 à 21:27
Bonjour,

je pense qu'il faudra que tu refasse ta requête afin de re-remplir ton contrôle.

0
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
6 mars 2011 à 20:18
Bonjour , pour faire ce que tu veux moi je prendrais un msflexgrid quand tu selectionne le sport il te fait un tableau dans le msflexgrid
mais pour ça faudrais voir ta base de donnée pour voir comment elle est faite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coaut Messages postés 23 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 27 juillet 2011
7 mars 2011 à 00:31
Bonsoir, merci de votre proposition avec le msflexgrid.
Pourriez vous m'indiquer le composant pour l'ajouter, des informations pour son utilisation et comment l'utiliser avec mon ComboBox.
Merci d'avance.
0
petiflamand Messages postés 675 Date d'inscription samedi 31 mai 2003 Statut Membre Dernière intervention 26 mai 2013 1
7 mars 2011 à 08:06
Bonjour ,
Dans projet -> composant > Microsoft flexgrid control 6.0
Dans ces proprieter lui dire le nombre de colonne

MSFlexGrid1.Clear
MSFlexGrid1.Rows = 1 'lui dit le nombre de ligne
MSFlexGrid1.ColWidth(0) = 0,la taille de la 1 er colonne
MSFlexGrid1.ColWidth(1) = 1100'la taille de la 2iem
MSFlexGrid1.ColWidth(2) = 4100' la taille de la 3iem
MSFlexGrid1.Row = 0'lui dire a quel ligne il doit etre
MSFlexGrid1.Col = 1, dans quel colonne on veux ecrire
MSFlexGrid1.Text = "Tire 1"' le titre de la colonne
MSFlexGrid1.Col = 2' on passe a la 2iem colonne
MSFlexGrid1.Text = "Titre de la 2iem colonne"
Apres il faut faire ça requete pour aller chercher les donnée dans votre table mais pour ça faudrais voir la base de donnée.
Exemple :
Set db = OpenDatabase(App.Path & "\ta_base_de_donnee.mdb")
Set rs db.OpenRecordset("SELECT champ1,champ2,champ3,champ4 FROM ta_table WHERE ta_table.ton_champ'" & Combo1.Text & "'GROUP BY champ1,champ2,champ3,champ4")

et tu les place dans ton msflexgrid
comme ceci
If rs.RecordCount > 0 Then'si le resultat de ta requete donne plus que 1 enregistrement
rs.MoveFirst'il vas au premier
Do Until rs.EOF = True' il fait la boucle jusque quand il arrive au dernier
MSFlexGrid2.AddItem ("1")' a chaque passage il vas ajouter une ligne
MSFlexGrid2.Row = MSFlexGrid2.Rows - 1'comme on vient d'ajouter une ligne il passe sur la suivante
MSFlexGrid2.Col 1: MSFlexGrid2.Text rs!champ1'il ecrit dans la cellule choisi
    MSFlexGrid2.Col 2: MSFlexGrid2.Text rs!champ2'   ect.....
rs.MoveNext' il passe au record suivant
Loop'il retourne au debut tant que n'est pas arriver a la fin
End If

Voila jespere que ça t'aide
0