cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:\somepath;" & _ "Extended Properties=""text;HDR=Yes;FMT=Delimited;"";"
Sub tranfertFeuilleClasseursFermes_VersAccess_V02() 'Nécessite d'activer la référence Microsoft ActiveX Data Objects x.x Library 'Nécessite d'activer la référence Microsoft ADO ext x.x for DLL and Security ' 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, Feuille As String Dim oCat As ADOX.Catalog '------------------------------------------------------ 'Connection à la Base Access Set oConn = New ADODB.Connection oConn.Open "Provider='Microsoft.Jet.OLEDB.4.0';" & _ "Data Source= 'C:\Documents and Settings\RC1194\Desktop\Test appli1\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 = "C:\Documents and Settings\RC1194\Desktop\Test appli1\sauvegarde" Fichier = Dir(Repertoire & "\*.txt") Do While Fichier <> "" 'Connection au classeur Excel Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & Repertoire & "" & Fichier & ";" & _ "Extended Properties=""text;HDR=Yes;FMT=Delimited;"";" '------------------------- Set oCat = New ADOX.Catalog Set oCat.ActiveConnection = Cn 'Récupére le nom de la Feuille: 'Attention: l'index correspond à un ordre alphabétique croissant 'et les plages de cellules nommées sont intégrées. Feuille = oCat.Tables(0).Name '------------------------- 'requête pour extraire les données de la Feuil1 oProdRS.Open "SELECT * FROM [" & Feuille & "]", Cn, adOpenStatic ' --- Transfert les données dans la base --- Do While Not (oProdRS.EOF) oRS.addNew For j = 0 To oRS.Fields.Count - 2 oRS.Fields(j) = oProdRS.Fields(j).Value Next j oRS.Update oProdRS.moveNext Loop '------------------------------------------- Set oCat = Nothing 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question