Réponse acceptée !
Dans ce cas, si tu travailles à la base avec access, il y a un moyen simple d'exporter, par prog, une table access vers excel. Ce code n'est pas de moi mais il fonctionne :
D'abord, ds projet/références... il faut cocher "Microsoft Access 8.0 Object Library" pour une base Access 97, pour d'autres versions, ça doit être "Microsoft Access 10.0 Object Library" enfin tu vérifies moi je n'ai encore que la version 97.
Et puis tu testes ce code dans une form avec un bouton (command1), bien sûr, tu doit changer le nom des base, table et classeur :
Const acQuitPrompt = 0 Const acQuitSaveAll = 1 Const acQuitSaveNone = 2
' ' ' Export access >> excel ' ' Ne pas oublier de cocher les références dans Projet ' Microsoft Access et Microsoft DAO ' ' Private Sub Command1_Click() Dim db As Database Dim rq_SQL As String Dim obj_Access As Access.Application Dim Nom_Base_Access As String Dim Nom_Fichier_Excel As String Dim Nom_Requete As String
Nom_Fichier_Excel = "c:\temp\classeur1.xls" Nom_Base_Access = "c:\temp\bd1.mdb" Nom_Requete = "Transfert_Vers_Excel"
' Définition de la base de données Set db = OpenDatabase(Nom_Base_Access) ' Création de la requète temporaire rq_SQL = "select * from table1" db.CreateQueryDef Nom_Requete, rq_SQL ' Création d'un objet Access Set obj_Access = New Access.Application ' Ouverture de la base Access obj_Access.OpenCurrentDatabase Nom_Base_Access ' Exportation de la requete vers un fichier excel ' ATTENTION : si le fichier Excel existe, il est écrasé ! ' S'il n'existe pas, il est créé obj_Access.DoCmd.TransferSpreadsheet acExport, , Nom_Requete, Nom_Fichier_Excel ' Fermeture de la base obj_Access.Quit acQuitSaveNone ' Libération de la mémoire Set obj_Access = Nothing ' Effacement de la requete temporaire db.QueryDefs.Delete Nom_Requete End Sub
Cordialement
CanisLupus
|