cagouille40
Messages postés10Date d'inscriptionlundi 11 septembre 2006StatutMembreDernière intervention29 avril 2009
-
29 avril 2009 à 10:25
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 2012
-
30 avril 2009 à 00:49
Bonjour à tous,
Voilà mon petit soucis. J'ai un datagrid qui récupère les données d'une base access, le tout sans ado. Mon problème est que dans le datagrid ne sont affichées que deux colonnes de ma base. Ce que je voudrais c'est que lorsque je clique sur une info dans le datagrid, on puisse faire apparaitre dans des controles labels le reste des données. Par exemple si j'ai un nom dans le datagrid, lorsque je clique dessus apparaissent dans les labels les noms, prenoms adresse, etc ....
Voici une partie de mon code pour que vous voyez comment je me suis connectée à ma base
btnmodifier.Caption = "Modifier"
Dim conppsps As ADODB.Connection
Dim recorppsps As ADODB.Recordset
Dim db As String
Dim i As Integer, lignes
Set conppsps = New ADODB.Connection
conppsps.Provider = "Microsoft.Jet.Oledb.4.0"
db = ".\admin.mdb"
conppsps.ConnectionString = db
conppsps.Open
Set recorppsps = New ADODB.Recordset
recorppsps.Open "select nom, ville from tbl_ppsps", conppsps, adOpenDynamic
lignes = recorppsps.Properties.Count
recorppsps.MoveFirst
msfcommun.Cols = 2
msfcommun.Rows = 100
msfcommun.Col = 0
msfcommun.Row = 0
msfcommun.Text = "Nom chantier"
msfcommun.Col = 1
msfcommun.Row = 0
msfcommun.Text = "Ville"
Do While Not recorppsps.EOF
msfcommun.Row = i + 1
msfcommun.Col = 0
msfcommun.Text = recorppsps!nom
msfcommun.Col = 1
msfcommun.Text = recorppsps!ville
recorppsps.MoveNext
i = i + 1
Loop
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 30 avril 2009 à 00:39
Salut,
Pour répondre à ta demande, juste deux petites choses à modifier:
1° Placer Dim recorppsps As ADODB.Recordset dans la partie Declaration du module.
2° Reformuler l' expression qui deviendra:
recorppsps.Open "select * from tbl_ppsps", conppsps, adOpenDynamic
Tu remplis ton MsFlexgrid comme tu l' as déjà fait,avec juste le nom et la ville.
Pour le reste, avec un ton MsFlexgrid dont le mode selection est par ligne, tu rajoutes ceci dans l' événement Click:
Private Sub MsFlexGrid_Click()
Dim xNom As String
xNom=MsFlexgrid.TextMatrix(MsFlexgrid.Row,0)
With recorppsps
.Find "[Nom chantier]='" & xNom & "'"
Label1.Caption=!Tata
Label2.Caption=!Toto
Label3.Caption=!Titi
'etc...
End With
End Sub