Bonjour à tous,
A la suite de cette discussion , j'arrive à lister les tables et les champs pour chaque table sélectionnée.
Pour lister les champs d'une table choisie j'utilise ce code et qui rempli une liste déroulante.
Tout fonctionne correctement, cependant les champs sont visualiser dans l'ordre alphabétique et non dans l'ordre dans la table, je sais que l'ordre n'a aucune importance dans une table mais cela en a une pour la visualisation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Public Sub ListeChamps(strBase As String, strTable As String) ' Cette Routine va permettre de liste les champs de la table sélectionnée Dim Tables As DataTable strConnexion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strBase Using cnn As New OleDbConnection(strConnexion) cnn.Open() Tables = cnn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New String() {Nothing, Nothing, strTable}) End Using ' Tables.DefaultView.Sort(Tables.Rows) ' Remplissage de la liste des champs Dim K As DataRow frm_Main.cbo_Liste_Tables.Items.Clear() For Each K In Tables.Rows Dim strChamp = K.Item("COLUMN_NAME") frm_Main.cbo_ListeChamps.Items.Add(strChamp) Next End Sub
Donc en résumant je ne sais pas comment avoir le bon ordre.
Je pense que cela vient des paramétrages de cette ligne :
Malgré mes recherches je ne comprends pas la 2 ème composante de la commande New String() {Nothing, Nothing, strTable} qui est la restriction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Tables = cnn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New String() {Nothing, Nothing, strTable})
A moins que le puisse faire un tri sur la DataTable ?
Merci de votre aide.
ONTAYG
Partager