Export de requête Access 97 vers Excel

Fermé
Flo - 7 juin 2004 à 20:56
 Tristan - 24 juin 2009 à 10:58
Bonjour tout le monde !

Je suis en stage, et je bosse sur une base de données sous Access 97. Je voudrais exporter, depuis un module, le résultat d'une requête vers Excel mais sans enregistrer de fichier xls avant !

En fait, j'aimerais que ça fasse le même résultat que :
DoCmd.OutputTo acOutputQuery, nomReq, acFormatXLS, , True
sans que ça s'enregistre sur le disque, ni qu'il y ait une demande d'enregistrement.

Est-ce que c'est possible ?
A voir également:

3 réponses

DaNot Messages postés 221 Date d'inscription mardi 30 septembre 2003 Statut Membre Dernière intervention 4 novembre 2005 163
9 juin 2004 à 11:07
Bonjour,

Oui, c'est possible. Pour cela, tu dois créer une application Excel de type ActiveX avec la commande CreateObject. Tu disposes à ce moment là d'un pointeur sur une instance Excel que tu peux manipuler comme du VBA Excel.

Il te reste qu'à coller dans un nouveau classeur les données une à une (si il y une autre solution, je ne la connais pas ...) que tu veux retrouver sous Excel.

Aucun enregistrement n'est fait sur le disque. La demande d'enregistrement est faite lorsque tu fermes Excel !

J'ai quelques exemples dans ma besace...

DaNot
un Libre ouvert à la source...
5
Punaise je deviens fou!!! il doit y avoir une notion essentielle qui m'échappe, je ne comprends pas pourquoi mais quand je fais copier coller de ce code et que jkel'adapte à ma situation ca me met erreur 424 objet requis... quelqu'un pourrait m'aider s'il vous plait?
5
Merci beaucoup !!

J'ai cherché un peu de doc la-dessus. J'ai essayé aujourd'hui, ça marche nickel !!
1
Voici une fonction permettant d'exporter le résultat d'une requête ou le contenu d'une table, avec les titres des colonnes vers un fichier excel, et en choisissant le nom que portera ce fichier excel.
Lors du lancement de la fonction, une boite de dialogue permettra de saisir le nom choisi, (sans l'extension qui s'ajoutera automatiquement).




export ()


Dim Message as string
Dim Titre as string
Dim Nom as string



'Ouverture de la Macro MaMacro pour l'exportation vers Excel
DoCmd.RunMacro "MaMacro"


'Pour exporter une table, il faut remplacer la ligne précédentes par :
'Ouverture de la table MaTable pour l'exportation vers Excel

DoCmd.OpenTable "MaTable"


'Définit le message.
Message = "Entrez le nom du Fichier de Sortie"
' Définit le titre.

' Affiche le message, le titre et la valeur par défaut.
Titre = "Nom du fichier de sortie"
Nom = InputBox(Message, Titre)

'Exportation de la Table ou de la requête au format Excel 97, dans le répertoire D:\Personnel\

'avec pour nom : le nom saisi dans la boite de dialogue, suivi de la date du jour et de l'extension ".xls"


'Commande d'exportation de la table ou du résultat de la requête, (pour la requête, remplacer
'"MaMacro" par "MaTable"). Le chiffre 8 indique le format (Excel 97).
DoCmd.TransferSpreadsheet acExport, 8, "MaMacro", "D:\Personnel\" & Nom Format(Date, "DDMMYYYY") & ".xls", True



End sub
0
Flo > waves
15 juin 2004 à 19:48
Merci !
C'est ce que j'avais fait au début, mais je voulais justement que le fichier ne s'enregistre pas du tout sur le disque.
Pour ça, la méthode de DaNot marche très bien.
Mais c'est super gentil d'avoir répondu !
0
Japijo > waves
19 mai 2008 à 21:01
Bonjour,

Et ben ta réponse, Wawe, moi je dis que c'est une réponse de pro.

La plupart du temps quand on lit les messages des gens qui savent ce qu'ils racontent, on ne comprend encore rien à la dixième lecture. Des fois la onzième arrange les choses mais bon. Là, ta réponse on la comprend du premier coup. Simple et efficace ! Chapeau gars !

Merci !
0
Tristan > waves
24 juin 2009 à 10:58
Punaise je deviens fou!!! waves ou as tu placé ce code et qu'as tu ajouté d'autre pour que tout fonctionne? je suis un peu perdu j'avoue... il doit y avoir une notion essentielle qui m'échappe, je ne comprends pas pourquoi mais quand je fais copier coller de ce code et que jkel'adapte à ma situation ca me met erreur 424 objet requis... quelqu'un pourrait m'aider s'il vous plait?

Mon adresse mail est tristanvernay@hotmail.fr si vous préférez
0