Exporter des infos stockées dans une base Access vers Excel

Résolu
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009 - 12 avril 2007 à 22:05
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009 - 14 avril 2007 à 11:28
B'jour!

Je vous explique ma situation. J'ia une base de données Access avec une liste de films et les infos qui les concernent.

Cette base de données, je la l'alimente et la lit depuis mon application VB.

J'ai eu l'idée d'ajouter la fonctionnalité d'export de la liste des films et de leur description dans un fichier excel.

J'arrive à ouvrir un fichier excel et à y mettre les données d'un film: en effet dans mon application quand je clique sur le Titre d'un film j'ai ses infos qui apparaissent dans des textbox, donc il m'est facile d'exporter les données des textbox.text correspondant.
Mais le soucis c'est de pouvoir tout extraire d'un coup (sans avoir à cliquer sur chacun des films :D) et que tout soit mis dans les cellules excels ...

Pouvez vous m'éclairer sur la démarche à adopter? J'imagine une sorte de boucle For avec un "tant que non fin de fichier" mais je ne vois pas comment faire un lien entre mon idée et l'application.

Merci de votre aide :) :)

David

7 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
13 avril 2007 à 00:00
Recherche dans l'aide la fonction CopyFromRecordset que tu peux utiliser avec tes objets Excel

MPi
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
14 avril 2007 à 00:03
En écrivant ceci
Set oBook = oExcel.Workbooks.Add
tu crées un nouveau classeur et c'est dans celui-ci que tu vas travailler

Essaie plutôt en ouvrant le classeur dans lequel tu veux écrire les données
Set oBook = oExcel .Workbooks.Open("le chemin et nom complet")

Ensuite, tu peux utiliser ton objet oSheet pour activer la bonne feuille si c'est le cas.

MPi
3
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
13 avril 2007 à 00:36
ok, je vais jeter un oeil où je peux ;) Je ne sais pas de quelle aide tu parles (vb je suppose...) mais je vais regarder :)

Merci beaucoup :)
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
13 avril 2007 à 12:05
Si tu ne trouves pas dans l'aide de VB, regarde dans celle de VBA

MPi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
13 avril 2007 à 19:41
Erffff je craque!

J'ai suivi tes conseils, j'ai regardé sur le net et j'ai trouvé une aide vraiment bien fournie sur le site de Microsoft.

J'arrive à extraire mes données plus ou moins bien vers une feuille excel. J'essaye de comprendre le code utilisé, j'y arrive relativement bien mais le problème est que la feuille excel qui s'ouvre est une feuille vierge alors que, comme j'ai essayé de l'écrire dans mon code, j'aimerai pouvoir ouvrir la feuille listeFilms.xlt et extraire mes données dedans.

Voici la portion de code concernée, il y a peut-être quelques lignes inutiles... :

Private Sub btnExporterExcel_Click()
     'Create a Recordset from all the records in the Orders table
   Dim sNWind As String
   Dim conn As New ADODB.Connection
   Dim rs As ADODB.Recordset
   sNWind = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=basedonnees.mdb"
   conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      sNWind & ";"
   conn.CursorLocation = adUseClient
   Set rs = conn.Execute("DVD", , adCmdTable) 'adCmdTable je ne sais pas ce que c'est... Sans doute relatif à la base de données "Commandes" qui était donnée en exemple.

   'Create a new workbook in Excel
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   Set oSheet = oBook.Worksheets(1)
 
   repCourant = App.Path + "" 'Indique le répertoire courant dans lequel se trouve l'application

PathDocu = repCourant 'On indique le chemin d'accès au fichier .xlt
ChoixDocu = "listeFilms.xlt" 'On indique le nom du fichier que l'on veut ouvrir.

With oExcel

    '.Documents.Open (PathDocu & ChoixDocu) 'Le document est ouvert grace au chemin donné plus haut
      
    .Visible = True

   'Transfer the data to Excel
   oSheet.Range("A2").CopyFromRecordset rs
  
   'Save the Workbook and Quit Excel
  ' oBook.SaveAs "C:\Book1.xls"
   'oExcel.Quit
  
   'Close the connection
   rs.Close
   conn.Close
End With
End Sub

Merci de votre aide!!!

David
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
14 avril 2007 à 01:29
Super, exactement le type de réponse que j'attendais :)

J'essaierai demain et je te tiens au courant :)

Merci encore!

David
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
14 avril 2007 à 11:28
Excellent ça fonctionne :) Merci 1000 fois :D
0