VBA récupération des données dans excel issuent d'une requête access
loirei
Messages postés2Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention 4 mai 2010
-
28 avril 2010 à 15:03
loirei
Messages postés2Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention 4 mai 2010
-
4 mai 2010 à 08:48
Bonjour,
Existe-t-il un moyen plus propre que l'enregistreur de macro pour récupérer dans excel le résultat d'une requête access ? (voir ci-dessous)
houtas
Messages postés116Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention29 août 2013 29 avril 2010 à 13:48
deux possibilités soit tu récupére avec Excel tes données en utilisant données externes, donc tes données seront liées à la requête, soit tu exporte directement ta requête dans Excel, ce sujet ayant déja été traité tu trouvera tout le nécessaire sur le site, la méthode à utiliser est
TransferSpreadsheet
La syntaxe pour exporter les données sera de ce type
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, nomrequête, cheminfihierexcel, True, Rangedest
remplace nomrequête,cheminfihierexcel et Rangedest par tes paramètres et le tour est joué
rv83toulon
Messages postés68Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention25 avril 2013 29 avril 2010 à 17:47
Salut, le forum
tu peux aussi dans un module sur Excel utiliser la connexion via DAO comme ceci:
Sub connect_base_access()
Rem --- Nécessite de COCHER Microsoft DAO x.x Object Library dans
Rem --- Editeurs VBA => Outils => Références... => Microsoft DAO x.x Object Library
Dim Datbas As DAO.Database
Dim Recset As DAO.Recordset
Dim strSQL As String
'Chemin ou se trouve la base Access
Set Datbas = DAO.OpenDatabase("C:\Test.mdb", False, False)
'Requete SQL de Selection
strSQL = "SELECT Champ1 FROM MaTable "
' execution requete
Set Recset = Datbas.OpenRecordset(strSQL, DAO.dbOpenSnapshot)
'Copie le résultat à partir de la cellule A1 de la feuille Excel
Range("A1").CopyFromRecordset Recset
'deconnexion de la base
Datbas.Close
End Sub
Ce code se connecte à la base et fait une requete selection sur la colonne "Champ1" de la table "MaTable" et colle le résultat dans la feuille active d'Excel à partir de la Cellule A1.
Bien entendu il faut adapter à tes besoins.
@+