Bonjour,
J'utilise une macro VBA pour parcourir une base de donnée à l'aide de "Microsoft.ACE.OLEDB.12.0".
J'utilise le code ci-dessous pour la parcourir:
Le parcours de la base de donnée se déroule correctement.
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 Dim i, j As Integer i = 2 j = 0 For Each objTable In objCatalog.Tables If objTable.Name = "Articles" Then 'Debug.Print (objTable.Name) For Each objField In objCatalog.Tables(objTable.Name).Columns 'Debug.Print (vbTab & objField.Name & " " & objField.Type & " " & GetFieldType(objField)) 'Debug.Print (GetFieldType(objField)) Cells(i, 1) = objTable.Name Cells(i, 2) = objField.Name Cells(i, 3) = objCatalog.Tables(objTable.Name).Columns(j).Name Cells(i, 4) = j j = j + 1 i = i + 1 Next objField End If Next objTable
Cependant je récupère les champs dans l'ordre alphabétique et le numéro de colonne associé ne me semble pas être le bon.
Comment récupérer le vrai numéro de colonne pour chaque champ tel qu'il apparait dans la base ?
Par avance merci.
Je précise les points suivants:
Je souhaite re-coder une macro VBA qui utilisait des recordset de la bibliothèque DAO vers un usage de la bibliothèque ADO pour des problèmes de compatibilités Excel 32/64 bits.
Lorsque je parcours la base avec un recordset, les champs ne sont pas sortis de la même manière qu'avec la bibliothèque ADO.
Je voudrais avoir une logique de parcours des champs identique lorsque j'utilise des recordset ou la bibliothèque ADO.
Partager