Recupérer les caractéristiques des champs de toute les tables dans une db access

Résolu
alainh2401 Messages postés 7 Date d'inscription mardi 2 mars 2004 Statut Membre Dernière intervention 2 juillet 2008 - 23 juin 2007 à 14:08
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 2 juil. 2007 à 17:44
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

Gwendal3 Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 15 août 2011
25 juin 2007 à 23:06
3
alainh2401 Messages postés 7 Date d'inscription mardi 2 mars 2004 Statut Membre Dernière intervention 2 juillet 2008
26 juin 2007 à 21:35
Merci pour ce sérieux coup de main


alainh2401
0
mohamed222222 Messages postés 161 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 22 avril 2009
2 juil. 2007 à 15:44
Salut,
j'ai essayé ton code et il ne marche pas.

est ce normal ?

Merci d'avance
0
mohamed222222 Messages postés 161 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 22 avril 2009
2 juil. 2007 à 15:45
peux-tu me passer une version qui marche?
merci d'avance
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 juil. 2007 à 16:19
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
0
mohamed222222 Messages postés 161 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 22 avril 2009
2 juil. 2007 à 17:35
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 juil. 2007 à 17:44
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
0
Rejoignez-nous