Bonjour,
Je souhaite enregistrer des lignes de mon fichier Excel 2010 vers Access 2010.
Pour cela voici 1 marco vba qui s’exécute lorsqu'on clique sur un bouton présent dans le fichier excel: on veut enregistrer le tableau dans une table access 2010.
J'ai une erreur sur la ligne suivante
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=BDD.accdb; "
Format de base de données BDD.accdb non reconnu
Lorsque je modifie la ligne par
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=BDD.accdb; & ""Extended Properties=""Excel 8.0;HDR=Yes;"";"
Pilote ISAM introuvable
J'ai ajouté diverses références mais rien n'y fait j'ai toujours des erreurs
Voici mon code complet
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 61 62 63 64 65 66 67 68 69 70 71 72
| Sub ADOFromExcelToAccess()
' exports data from the active worksheet to a table in an Access database this procedure must be edited before use
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
' connect to the Access database
Set cn = New ADODB.Connection
'cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=AXAPM_REPORT.accdb;"
'cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=AXAPM_REPORT.accdb;"
'cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=Z:\03-Opérations\AXA PM PROJETS\REPORTING ENCOURS\RECETTE\AXAPM_REPORT.accdb;"
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & "Data Source=BDD.accdb; "
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "SUIVI", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 2 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("ID") = Range("A" & r).Value
.Fields("CODE") = Range("B" & r).Value
.Fields("DATE") = Range("C" & r).Value
.Fields("NB_JOURS") = Range("D" & r).Value
.Fields("VALUE") = Range("E" & r).Value
.Fields("ACTIF") = Range("F" & r).Value
.Fields("NB") = Range("G" & r).Value
.Fields("FDG1") = Range("H" & r).Value
.Fields("FDG2") = Range("I" & r).Value
.Fields("ECART") = Range("J" & r).Value
' add more fields if necessary...
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub |
merci beaucoup de votre aide.
Partager