Bonjour à tous,
J'ai récupéré le code de ce post.
Voici le code complet que j'utilise:
J'ai modifié la connexion pour que le code soit fonctionnel avec Excel 2010 mais je rencontre une erreur d’exécution dans la section transfert des données:
Une erreur apparaît m'indiquant que le type ne correspond pas.
Quelqu'un saurait m'aider ?
Merci à tous,
Evicitus
J'ai récupéré le code de ce post.
Voici le code complet que j'utilise:
Code:
Sub tranfertFeuilleClasseursFermes_VersAccess()
Dim Cn As New ADODB.Connection
Dim oProdRS As New ADODB.Recordset, oRS As ADODB.Recordset
Dim oConn As ADODB.Connection
Dim j As Integer
Dim Fichier As String, Repertoire As String
'------------------------------------------------------
'Connection à la Base Access
Set oConn = New ADODB.Connection
oConn.Open "Provider='Microsoft.Jet.OLEDB.4.0';" & _
"Data Source= 'D:\repA\maBase.mdb';"
'les données seront placés dans Table1
Set oRS = New ADODB.Recordset
oRS.Open "Select * from Table1", oConn, adOpenKeyset, adLockOptimistic
'------------------------------------------------------
'Boucle sur les classeurs Excel du répertoire cible
Repertoire = "D:\repB\"
Fichier = Dir(Repertoire & "\*.xlsx")
Do While Fichier <> ""
'Connection au classeur Excel
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
'requête pour extraire les données de la Feuil1
oProdRS.Open "SELECT * FROM [Feuil1$]", Cn, adOpenStatic
' --- Transfert des données dans la base ---
Do While Not (oProdRS.EOF)
oRS.addNew
For j = 0 To oRS.Fields.Count - 1
oRS.Fields(j) = oProdRS.Fields(j).Value
Next j
oRS.Update
oProdRS.moveNext
Loop
'-------------------------------------------
oProdRS.Close
'Fermeture de la connection au classeur Excel
Cn.Close
Fichier = Dir
Loop
oRS.Close
Set oRS = Nothing
'Fermeture de la connection Access
oConn.Close
Set oConn = Nothing
End Sub
J'ai modifié la connexion pour que le code soit fonctionnel avec Excel 2010 mais je rencontre une erreur d’exécution dans la section transfert des données:
Code:
Do While Not (oProdRS.EOF)
oRS.addNew
For j = 0 To oRS.Fields.Count - 1
oRS.Fields(j) = oProdRS.Fields(j).Value
Next j
oRS.Update
oProdRS.moveNext
Loop
Une erreur apparaît m'indiquant que le type ne correspond pas.
Quelqu'un saurait m'aider ?
Merci à tous,
Evicitus
Dernière édition: