bruce207
Messages postés106Date d'inscriptionmardi 4 mars 2008StatutMembreDernière intervention 2 mai 2012
-
8 avril 2008 à 12:03
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
9 avril 2008 à 19:08
Bonjour,
mon probleme est le suivant : j'ai une feuille sur laquelle se trouve un datagrid et un textbox. Le datagrid affiche des informations de 2 tables (MEMBRE et COMPTE) de ma bdd, lorsqu'on entre le nom d'un membre recherché dans le textbox, il selectionne le dit membre et affiche ses informations. Le hic ici est que au départ il m'affiche bien les informations des 2 tables, mais lorsque je saisie le nom du membre recherché il n'affiche que les informations de la table MEMBRE je ne sais pas comment faire pour que les informations de ma 2eme table reste.
Voici le code placé dans la form:
Private Sub Form_load()
'Définition du pilote de connexion
cnx.CursorLocation = adUseServer
cnx.Provider = "Microsoft.jet.OLEDB.4.0"
'Définition de la chaine de connexion
cnx.ConnectionString = "C:\Documents and Settings\Administrateur\Bureau\Nouveau dossier\fiferpro.mdb"
'Ouverture de la base de donnée
cnx.Open
'Définition du curseur
rst.CursorLocation = adUseClient
rst.Open " SELECT compte.*, membre.* FROM membre Inner join compte on membre.mat_mem = compte.mat_mem", cnx, adOpenStatic, adLockOptimistic, adCmdText
If rst.RecordCount = 0 Then
MsgBox " Il n'y a aucun enregistrement dans la base"
Exit Sub
End If
Set DataGrid1.DataSource = rst
DataGrid1.Refresh
End Sub
Voici le code du textbox :
Private Sub Text1_Change()
Dim str As String
If rst.State <> adStateClosed Then rst.Close
str = "select * from membre where nom_mem like '" & Text1 & "%'"
rst.Source = str
rst.Open
Set DataGrid1.DataSource = rst
End Sub
Comme vous l'avez remarquer j'ai utilisé INNER JOIN pour alimenter mon datagrid avec les 2 tables. Mais comment faire maintenant pour qu'à la saisie du nom cela n'affecte pas l'affichage du datagrid et n'affiche pas que les informations du membre? aidez moi SVP
Merci d'avance
JPGVB
Messages postés96Date d'inscriptionmardi 29 mars 2005StatutMembreDernière intervention10 mars 20112 8 avril 2008 à 12:39
Bonjour, si tu veux conserver les infos des deux tables il faut indiquer la jointure dans l'instruction sur text1_change en y ajoutant ta condition.
rst.Open " SELECT compte.*, membre.* FROM membre Inner join compte on membre.mat_mem = compte.mat_mem WHERE nom_mem like '" & Text1 & "%'", cnx, adOpenStatic, adLockOptimistic, adCmdText
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 9 avril 2008 à 19:08
Salut
Pense à valider la réponse de JPVB si tu considères le problème comme résolu.
Ca fait toujours plaisir et ça aidera les autres à trouver une réponse à une question similaire.