Importation automatique de données de excel vers access [Résolu]

Messages postés
8
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
23 mai 2012
- - Dernière réponse : amirdiakite
Messages postés
8
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
23 mai 2012
- 18 mai 2012 à 12:11
Bonjour,
Je suis un peu nouveau sur le forum. Au fait je développe actuellement une petite application en VBA pour importer automatiquement des données d’Excel vers Access. Je suis débutant en VBA, mais en cherchant sur le net j’ai pu écrire un code. J’ai un petit souci. Lorsque je compile le code que j'ai écris me génère une erreur du genre "Type défini par l'utilisateur non défini" et le curseur se pointe sur cette partie de mon code « cn As ADODB.Connection ». Quelqu'un pourrait t-il m'aider. Voici mon code complet en VBA que j’ai écris:
Sub ADOFromExcelToAccess()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Chemin = ActiveWorkbook.Path
Source = Chemin & "\gestion stock.mdb"
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & Source & ";"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "[Etat stock]", 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("Code article") = Range("A" & r).Value
.Fields("Magasin") = Range("B" & r).Value
.Fields("Emplacement") = Range("C" & r).Value
.Fields("Ref GE/Origine") = Range("D" & r).Value
.Fields("Libelle") = Range("E" & r).Value
.Fields("Qté en stock") = Range("F" & r).Value
.Fields("Qté mini") = Range("G" & r).Value
.Fields("Unité de mesure") = Range("H" & r).Value
.Fields("Coût unitaire moyen") = Range("I" & r).Value
.Fields("Coût total") = Range("J" & r).Value
.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
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
8
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
23 mai 2012
3
Merci
@Jack : Finalement j'ai trouvé la solution pour l'erreur Variable non défini" et cette partie du code est surligné "Chemin = ActiveWorkbook.Path". Peux tu me conseiller une documentation ou des liens internet pour la compréhension et la gestion des erreurs de compilations. Parce c'est une autre erreur qui s'affiche, elle se présente ainsi : Erreur d’exécution '3265' Erreur défini par l'application ou par l'objet. Merci d'avance pour votre collaboration.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de amirdiakite
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut

Comme le dit l'erreur, les objets de la librairie ADODB sont inconnus de VB.
Il suffit donc d'aller dans les références du menu Outils de l'IDE de VBA et de chercher puis cocher "Microsoft AcriveX Data Objects X.X Library", où X.X représente la version à choisir (par exemple 2.8 ou 6.0)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
8
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
23 mai 2012
0
Merci
Merci Jack pour ton aide. Je suis vraiment débutant sur VBA donc il y a beaucoup de subtilités que je ne maîtrise pas. Je compile encore mon code j'ai cette erreur "Variable non défini" et cette partie du code est surligné "Chemin = ActiveWorkbook.Path". Je suis en train de chercher mais si vous pouviez m'aider ça me ferait gagner en temps. je travaille sur un projet dont le délai est un peu court.
Commenter la réponse de amirdiakite