Hello,

J'ai un code VBA pour disons copier une colonne de ma base de donnée bd1.mdb dans un ficher Excel ouvert.

Le souc, c'est que ça ne fonctionne pas et je ne comprends pas mon erreur. De manière générale, comment aller puiser dans Access depuis Excel?

Merci

voilà le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 Private Sub Workbook_Open()
 
Const ML_PATH = "path to bd1"
Const ML_QUERY = "sql query"
 
Call LancementRequêteAccess
End Sub
 
Function LancementRequêteAccess()
'variable objet affectée à l'application Access
Dim oAccesS As Access.Application
'variable pour la base de donnée
Dim db As DAO.Database
'variable objet requête
Dim qdf As QueryDef
'variable objet recordset
Dim rst As DAO.Recordset
 
'creation d'une instance Access par automation
Set oAccesS = CreateObject("Access.Application")
'chargement de la BDD
oAccesS.OpenCurrentDatabase ML_PATH
'affectation d'une référence à la BDD
Set db = oAccesS.CurrentDb
'affectation d'une référence à la requête
Set qdf = db.QueryDefs(ML_QUERY)
'lancement de la requête et création du jeu d'enregistrements
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
'écriture du jeu d'enregistrement à partir de la cellule A1
'de la feuille "Feuil1"
Worksheets("Feuil3").Range("A1").CopyFromRecordset rst
'libération de la mémoire
Set rst = Nothing
Set db = Nothing
End Function