IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Exportation d'une requete SQL vers excel


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 54
    Points : 45
    Points
    45
    Par défaut Exportation d'une requete SQL vers excel
    Bonjour

    J'ai une BD dont je voudrais extraire les données vers excel et pour cela, j'ai une requete SQL que j'aimerais envoyer vers excel mais avec le code suivant (trouvé dans la FAQ ), cela ne fonctionne pas :'(. Il me dit que l'objet ne supporte pas cette propriété ou cette méthode.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim qd As QueryDef
     
        Set qd = CurrentDb.CreateQueryDef("NewQuery", "SELECT DISTINCTROW * " & Right(MySQL, (Len(MySQL) - 36)) & " ORDER BY melting_program.program_id, melting_test.test_id")
     
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "NewQuery", "O:\bdcreuset1.1\export_brut_v1-2.xls", True, xlSheet2![A1:IV65536]
     
        Set qd = Nothing
    Pourriez vous me dire pourquoi?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    dans mon tuto sur l'export vers Excel, je signale qu'on ne peut pas préciser (du moins dans pas mal de version d'Access une plage) :

    http://cafeine.developpez.com/access...l/excel/#LIV-A

    Essaie sans préciser la plage pour voir ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 54
    Points : 45
    Points
    45
    Par défaut
    J'ai enlevé la plage mais il y a une autre erreur

    l'erreur : Cannot update, Database or Object is read-only.

    Je ne comprends pas car ma base et ma mon classeur excel ne sont pas en lecture seule

    Est-il possible de mettre l'export à la deuxième feuille? Car à la première, j'ai deja quelque chose.

    Merci d'avance

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Regarde et inspire toi de ça (une fonction qui doit correspondre à ton besoin).

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 54
    Points : 45
    Points
    45
    Par défaut
    J'utilisais deja les redordset mais le problème, c'est que c'est plutot lent.

    Comme dans ce cas ci, je n'avais pas besoin d'une disposition précise des données, je m'étais dit que je pourrais le faire comme ca.

    Finalement, je suis revenu aux recordsets mais il me faut 10 secondes pour transférer les données.

    Si vous avez une solution plus rapide, je suis preneur.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Re,

    J'ai fais le test de durée avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Sub testRecordset()
    Dim T As Single
    Dim I As Integer
    Dim Rs As DAO.Recordset
    Dim Excel As Object
    For I = 1 To 20
        T = Timer
        Set Excel = CreateObject("Excel.application").Workbooks.Add
        Set Rs = CurrentDb.OpenRecordset("temp", dbOpenSnapshot)
        Excel.sheets(1).cells(1, 1).copyfromrecordset Rs
     
        T = Timer - T
        Debug.Print T
    Next
     
    Excel.Close SaveChanges:=False
    Set Excel = Nothing
    Set Rs = Nothing
     
    End Sub
    En prennat donc dans le temps d'execution l'ouverture d'excel, la déclaration du recordset et l'exportation.
    La table exporté contient 15 000 ligne, 7 champs et une moyenne de 90 caractaire par champ.

    Le temps moyen d'exportation est de 3,5s, ce qui me parrait raisonnable non ?

    A+

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/11/2010, 19h42
  2. export d'une table postrges vers excel
    Par YOYO1970 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/03/2010, 17h23
  3. Exporter une requête SQL vers excel
    Par Info_76 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/08/2007, 09h09
  4. Résultat d'une requete SQL vers Excel
    Par climz dans le forum Access
    Réponses: 6
    Dernier message: 09/05/2006, 15h44
  5. Exporter des données d'un requete SQL vers excel (csv)
    Par PrinceMaster77 dans le forum ASP
    Réponses: 9
    Dernier message: 08/10/2005, 22h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo