Recupérer les caractéristiques des champs de toute les tables dans une db access [Résolu]

Signaler
Messages postés
7
Date d'inscription
mardi 2 mars 2004
Statut
Membre
Dernière intervention
2 juillet 2008
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour,

Je recherche la possibilité de mettre dans un treeview la liste des tables avec leur champs, j'ai trouvé comment récupérer les tables, mais pour les champs avec une requête SQL, elle ne retourne pas toutes les caractéristiques des champs, seulement leur nom et leur type.

Voici une partie de mon programme, "TableDonnee" étant la variable de connection a ma source access. 

Public

Sub RetourStructureTable(
ByVal Control
As TreeView)

            
Dim schemaTable
As DataTable = TableDonnee.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
New
Object() {
Nothing,
Nothing,
Nothing,
"TABLE"})
Dim AA
As
Integer = 1

Dim BB
As
Integer = 1

Dim img
As
Integer = 0

For
Each tbd
As DataRow
In schemaTable.RowsControl.Nodes.Add(

"Table" & AA.ToString, tbd(2).ToString, 0)

Dim colInfo
As DataColumnCollection = tbd.Table.Columns()

For
Each col
As DataColumn
In RetourColumnTable(tbd(2).ToString)

If UCase(Left(col.ColumnName, 3)) =
"IDX"
Thenimg = 1

Else

If col.DataType.FullName =
"System.String"
Then img = 3

Elseimg = 2

End
If

End
IfControl.Nodes(

"Table" & AA.ToString).Nodes.Add(
"Colnum" & BB.ToString, col.ColumnName, img)BB += 1

NextAA += 1

Next

End
Sub

Public
Function RetourColumnTable(
ByVal NomTable
As
String)
As DataColumnCollection

Dim ChaineSql
As
String =
"SELECT * FROM " & NomTable &
";"

Dim db
As DataSet = ACTIONExecuteRequeteRetourneDataSet(ChaineSql)

Return db.Tables(0).Columns()

End
Function

Private

Function ACTIONExecuteRequeteRetourneDataSet(ByVal ChaineSql AsString) As DataSetdb_Commande.CommandText = ChaineSql

Try

Dim ds
As DataSet =
New DataSet

Dim da
As OleDbDataAdapter =
New OleDbDataAdapter(db_Commande)da.Fill(ds)

Return ds

Catch ex
As ExceptionMsgBox(ex.Message)

Throw ex

End
Try

End
Function

Merci d'avance pour votre aide.
Bonne journée.

7 réponses

Messages postés
60
Date d'inscription
samedi 4 mars 2006
Statut
Membre
Dernière intervention
15 août 2011

Messages postés
7
Date d'inscription
mardi 2 mars 2004
Statut
Membre
Dernière intervention
2 juillet 2008

Merci pour ce sérieux coup de main


alainh2401
Messages postés
161
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
22 avril 2009

Salut,
j'ai essayé ton code et il ne marche pas.

est ce normal ?

Merci d'avance
Messages postés
161
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
22 avril 2009

peux-tu me passer une version qui marche?
merci d'avance
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
quel code as tu essayé ?
le code de Bidou ?

http://faqvbnet.developpez.com/?page=form_tv#form_tv_tvData

m'etonnerais fort que son programme ne fonctionne pas, peut etre as tu des difficultés a le mettre en oeuvre....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
161
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
22 avril 2009

Salut,
excuse moi  s'il te plait est ce que tu peux me sauver!!!! je suis entrain de me noyer............

car en fait je veux récupérer toutes les bases,toutes les tables,tous les champs pour inserer dans une nouvelle table en sqlserver 2005.

Je te remercie beaucoup de ton aide à l'avance.

Bonne soirée
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
TOUT est là... http://faqvbnet.developpez.com/?page=form_tv#form_tv_tvData


tu veux quoi ? du tout cuit ?



...
GetOleDbSchemaTable
schemaTables.Rows.GetEnumerator
While MonEnumTable.MoveNext
GetOleDbSchemaTable
schemaColTable.Rows.GetEnumerator
MonEnumColonne.MoveNext
...

je code pas en .Net, et ces mots clés m'ont sauté aux yeux, c'est dire !

tu charge la liste des tables, tu parcoure chaque table, tu récupère la liste des champs, tu parcoures chaque champ....

non, je suis désolé, je vois pas quoi faire de plus.



achète une bouée.... ou  lit la doc de toutes ces méthodes, de tous ces objets...

Renfield
Admin CodeS-SourceS- MVP Visual Basic