Bonjour à tous,
J'utiliser la méthode suivante pour me connecter à ma base ACCESS, récupérer le résultat d'une requête et le faire ressortir dans ma feuille Excel à partir des fonctions.
Code :
- Dim rstRequete As DAO.Recordset
- Set db = DBEngine.OpenDatabase(cheminBdd)
- Set rstRequete = db.OpenRecordset("SELECT ..." )
- rstRequete.Close
|
Le souci est que ces fonctions sont très utilisées dans ma feuille de calcul. A chaque cellule, ma fonction doit ouvrir la base access, requêter et refermer la base.
Aussi, pour gagner un temps de calcul énorme, je me demandais si il n'était pas possible de conserver la connexion à la base ouverte tant que le classeur est ouvert.
J'ai donc rajouter ce bout de code dans le workbook. Mais pas de réponse.
Code :
- Dim db As DAO.Database
- Public Sub Workbook_BeforeClose(Cancel As Boolean)
- db.Close
- End Sub
- Public Sub Workbook_Open()
- Set db = DBEngine.OpenDatabase("C:\MaBDD.mdb" )
- End Sub
|
Une idée ?