Je cherche depuis ce matin comment récupérer la liste des tables d’un fichier Access 2000 depuis Excel 2000 en vba. J’ai parcouru tout MSDN sans succès, ca ne parle que de Excel 2003 et .NET alors que je dois bosser avec les versions 2000.
Voici le bout de code que j’ai testé :
[codebox]
Dim intTblCnt As Integer, intTblFlds As Integer
Dim strTbl As String
Dim rsC As ADODB.Recordset
Dim intColCnt As Integer, intColFlds As Integer
Dim strCol As String
Dim t As Integer, c As Integer, f As Integer
Set Cnx = New ADODB.Connection
’Définition du pilote de connexion
Cnx.Provider = “'Microsoft.Jet.Oledb.4.0”
'Définition de la chaîne de connexion
Cnx.ConnectionString = ThisWorkbook.Path & “” & NomFichierAccess
’Ouverture de la base de données
Cnx.Open
Set Rs = Cnx.OpenSchema(adSchemaTables)
intTblCnt = Rs.RecordCount
intTblFlds = Rs.Fields.Count
Debug.Print "Tables: " & intTblCnt
For t = 1 To intTblCnt
strTbl = Rs.Fields(“TABLE_NAME”).Value
Debug.Print vbTab & “Table #” & t & ": " & strTbl
Debug.Print vbTab & "--------------------"
For f = 0 To intTblFlds - 1
Debug.Print vbTab & Rs.Fields(f).Name & _
vbTab & Rs.Fields(f).Value
Next
Debug.Print "--------------------"
Rs.MoveNext
Next
Rs.Close
Cnx.Close
Set Rs = Nothing
Set Cnx = Nothing[/codebox]
Il arrive bien à se connecter (en tout cas il ne met pas d’erreurs) mais intTblCnt est égal à -1.
Si quelqu’un à une suggestion avant que j’aille me jeter du 7ème étage…