Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

exportation de XL à Access

2 réponses
Avatar
dhe
Bonjour,

je dois mettre =E0 jour une bdd access2003 depuis un fichier XL.
ll faut que un seul click puisse faire cette manipulation.
En consultant le forum, on parle de "Microsoft Activex Data Objects
2=2E0 librairy"
Comment puis-je faire pour activer ce contr=F4le? J'ai cherch=E9 un moment
mais pas trouv=E9.

Quelques codes permettent de le faire, mais =E7a me met un messsage
d'erreur.
Peu-=EAtre du =E0 ce contr=F4le manquant?
Mon fichier XL comprend 13 collone et commence =E0 partir de la ligne 6

Voil=E0 mon code :
Sub Access()


Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
' connect to the Access database


Set cn =3D New ADODB.Connection
cn.Open "Provider=3DMicrosoft.Jet.OLEDB.4.0; " & _
"Data Source=3DC:\mabase.mdb;"
' open a recordset


Set rs =3D New ADODB.Recordset
rs.Open "MaTable", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table


r =3D 6 ' 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("Nom") =3D Range("A" & r).Value
.Fields("Pr=E9nom") =3D Range("B" & r).Value
.Fields("Ann=E9e") =3D Range("C" & r).Value
' add more fields if necessary...
.Update ' stores the new record
End With
r =3D r + 1 ' next row
Loop
rs.Close
Set rs =3D Nothing
cn.Close
Set cn =3D Nothing
End Sub

2 réponses

Avatar
JB
Bonjour,

En VBA, commande Outils/Référence.

http://boisgontierjacques.free.fr/fichiers/jb-ExelAccess.zip

JB

On 30 juin, 16:34, dhe wrote:
Bonjour,

je dois mettre à jour une bdd access2003 depuis un fichier XL.
ll faut que un seul click puisse faire cette manipulation.
En consultant le forum, on parle de "Microsoft Activex Data Objects
2.0 librairy"
Comment puis-je faire pour activer ce contrôle? J'ai cherché un moment
mais pas trouvé.

Quelques codes permettent de le faire, mais ça me met un messsage
d'erreur.
Peu-être du à ce contrôle manquant?
Mon fichier XL comprend 13 collone et commence à partir de la ligne 6

Voilà mon code :
Sub Access()

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=C:mabase.mdb;"
' open a recordset

Set rs = New ADODB.Recordset
rs.Open "MaTable", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table

r = 6 ' 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("Nom") = Range("A" & r).Value
.Fields("Prénom") = Range("B" & r).Value
.Fields("Année") = Range("C" & 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


Avatar
dhe
Merci Beaucoup.
C'est exactement ce que je voulais.
Tu m'enlève une bonne épine de mon pied.
Bon Dimanche