1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| Private Function ListerChamps(MonChemin As String, MaTable As String) As Variant
'liste tous les champs d'une table
Dim MaADOConnection As New ADODB.Connection
Dim MonCatalog As New ADOX.Catalog
'Dim MonIndex As Variant
Dim MaTableADOX As New ADOX.Table
Dim MonElement As Object
Dim MonMessageErreur As String
Dim i As Integer
Dim ListerTableTemp() As String
On Error GoTo ErreurOuvrirConnection
'Définition du pilote de connexion (fournisseur)
MaADOConnection.Provider = "Microsoft.Jet.Oledb.4.0"
'Définition de la chaîne de connexion : chemin complet du .mdb
MaADOConnection.ConnectionString = MonChemin
'Ouverture de la base de données
MaADOConnection.Open "Data Source=" & MonChemin
Set MonCatalog.ActiveConnection = MaADOConnection
Set MaTableADOX = MonCatalog.Tables(MaTable)
ReDim ListerChampsTemp(MonCatalog.Tables(MaTable).Columns.Count - 1, 1)
i = 0
'For Each MonIndex In MaTableADOX.Columns
' ListerChampsTemp(0, 0) = MonIndex
' ListerChampsTemp(0, 0) = MonIndex
'Next MonIndex
For Each MonElement In MonCatalog.Tables(MaTable).Columns
ListerChampsTemp(i, 0) = MonElement.Name
If MonElement.Indexes.PrimaryKey = True Then
ListerChampsTemp(i, 0) = ListerChampsTemp(i, 0) & " (Clef)"
End If
ListerChampsTemp(i, 1) = GetFieldType(MonElement.Type)
i = i + 1
Next MonElement
ListerChamps = ListerChampsTemp
Set MonCatalog = Nothing
MaADOConnection.Close
Set MaADOConnection = Nothing
Exit Function
ErreurOuvrirConnection:
MonMessageErreur = "BDD : " & MonChemin & vbCr & Err.Description
MsgBox MonMessageErreur
End
End Function |
Partager