Tu peux normalement tout afficher
dans un premier temps tu reference ton projet avec Microsoft activeX Data Object 2.5 Library (ou ultérieur).
Dim Cnx as Adodb.Connection Dim Rs as Adodb.Recordset Dim Fld as Adodb.Field Dim Prop as Adodb.Property
Connexion à la Base :
Set Cnx=New Adodb.Connection si tu as Access 98 Cnx.Provider="Microsoft.Jet.OLEDB.3.51" si tu as Access 2000 Cnx.Provider="Microsoft.Jet.OLEDB.4.0"
Cnx.Open "NomBase","Admin","Pwd"
Set Rs = New Adodb.Recordset
Pour Obtenir toutes tables et vues Set Rs=Cnx.OpenSchema(adSchemaTables) le Nom est dans le Champ Rs!TABLE_NAME tu peux afficher cela dans ta liste grace à Do Until Rs.Eof List1.AddItem Rs!TABLE_NAME Rs.MoveNext Loop Rs.Close
Pour tous les champs de la Table en question Set Rs=Cnx.OpenSchema(adSchemaColumns, Array(Empty,Empty,NomTbl))
Le NomTbl etant le nom de la table selectionné dans ta liste. Le nom du champ etant dans Rs!COLUMN_NAME.
tu l'affiche dans ta grille soit au moyen d'une boucle soit en affectant le recordset à la valeur DataSource de ta grille
Set Grid1.DataSource=Rs Dans ce cas tu auras toutes les propriétés des champs en plus du Nom.
Pour les Index dans la table.
Set Rs=Cnx.OpenSchema(adSchemaIndexes, Array(Empty,Empty,Empty,Empty,NomTbl))
Le nom de l'index etant dans Rs!INDEX_NAME. Tu peux tester le Champ Rs!PRIMARY_KEY (True/False) pour la Clé Primaire.
tu affiche cela dans ta grille comme les champs.
Pour obtenir et afficher les Propriétés de la Base si tu en avait besoin ex: For Each Prop in Cnx.Properties List2.Additem Prop.Name & " = " & Prop.Value Next
Propriétés de la table. Set Rs=Cnx.OpenSchema(adSchemaTables, Array(Empty,Empty,NomTbl)) For Each Fld in Rs.Fields List2.Additem Fld.Name & " = " & Fld.Value Next
Propriétés d'un champ. Set Rs=Cnx.OpenSchema(adSchemaColumns, Array(Empty,Empty,NomTbl,NomChamp)) For Each Fld in Rs.Fields List2.Additem Fld.Name & " = " & Fld.Value Next
Propriétés d'un Index. Set Rs=Cnx.OpenSchema(adSchemaIndexes, Array(Empty,Empty,NomIDX)) For Each Fld in Rs.Fields List2.Additem Fld.Name & " = " & Fld.Value Next
En esperant avoir répondu à ta demande
------------------------------- Réponse au message : -------------------------------
Bonjour Avec visual basic 6, je voudrai sur un form afficher dans un unique datagrid les champs d'une basse de données access. Les tables de ma base sont affichées dans une liste. Est-il possible par exemple de selectionner dans la liste une table et d'afficher les champs de cette table dans le datagrid? Merci d'avance ERIC
|