Connexion à une base Access via VBA Excel

[Fermé]
Signaler
Messages postés
24
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
16 avril 2016
-
Messages postés
24
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
16 avril 2016
-
Bonjour,

J'espère que vous allez bien, j'ai un projet Excel que je dois réaliser en important des résultats dynamiques à partir d'une base de données Access, Est que quelqu'un peut-il m'aider (par un exemple) à créer la connexion et exécuter une requête de sélection, c'est urgent SVP. Merci d'avance.

2 réponses

Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 178
1
Merci

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

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
24
Date d'inscription
lundi 30 novembre 2009
Statut
Membre
Dernière intervention
16 avril 2016
2
Bonjour,
Merci Polux, Pourtant j'ai trouvé un exemple :

Avant toute chose, il faut activer les références Microsoft Access XX.X Object Library, et Microsoft DAO X.X Object Library dans l'éditeur Visual Basic.
Ensuite on essaie d'écrire le code suivant :
Sub exemple()

Dim enregis As DAO.Recordset, baseAccess As Database, feuille As Excel.Worksheet
Dim i As Integer

'On considère que le code est écrit dans le classeur Fiche.xls
Set feuille = ThisWorkbook.Worksheets("methode")
'On établi la connection avec la fameuse base Access
Set baseAccess = DBEngine.OpenDatabase("c:\fiche_access.mdb")
'On "récupère" une représentation exploitable de la table article via un objet Recordset
Set enregis = baseAccess.OpenRecordset("Select * FROM article")

'On renseigne tous les enregistrements de la table article à partir de la deuxième
'ligne de la feuille méthode
i = 2
Do
feuille.Range("A" & i) = enregis("code_article")
feuille.Range("B" & i) = enregis("libelle")
feuille.Range("C" & i) = enregis("qte")
feuille.Range("D" & i) = enregis("prix")
i = i + 1
enregis.MoveNext
Loop Until enregis.EOF
'On ferme la connection du recordset
enregis.Close

'On ferme la connection avec la base Access...
baseAccess.Close

'On fait un peu de ménage...
Set feuille = Nothing
Set enregis = Nothing
Set baseAccess = Nothing

End Sub