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

VBA Access Discussion :

Performance de mon code VB


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Par défaut Performance de mon code VB
    Bonjour,

    Je réalise via un code VB le remplissage d'un fichier excel depuis une table Access

    Ma table n'est pas tres lourde (seulement 400 tuples) et pourtant le fichier met près de 10 min à charger ! Et la requête ne pose aucun soucis, elle s'execute en à peu pres 0.15 sec ce qui ma foi est négligeable ...

    Bref je ne comprend pas pourquoi VB met autant de temps a faire cette petite itération, si quelqu'un pouvait m'aider

    Le seul point qui peut causer probleme, je récupere un à un 40 champs de ma requete.

    Mon code :

    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
    Dim requete As DAO.Recordset
    Dim db As DAO.Database
    Set db = CurrentDb
    Set requete = db.OpenRecordset("SELECT * FROM bidule)
     
     
    i = 1
    While Not RequeteAudit.EOF
            Excel.ActiveWorkbook.ActiveSheet.Range("A" & i).Value = requete("champ1")
            Excel.ActiveWorkbook.ActiveSheet.Range("B" & i).Value = requete("champ2")
           Excel.ActiveWorkbook.ActiveSheet.Range("C" & i).Value = requete("champ3")
            [.....]
           Excel.ActiveWorkbook.ActiveSheet.Range("AL" & i).Value = requete("champ40")
            RequeteAudit.MoveNext
            i = i + 1
        Wend

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    A premiére vu tes données sont d'un bloc, tu as d'autres solutions:

    1 - DoCmd.TransfertSpreadSheet
    2 - et celle-ci remplace toutes tes lignes par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Excel.ActiveWorkbook.ActiveSheet.Range("A1").CopyFromRecordset requete
    Starec

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Par défaut
    Bonjour,

    Alors concernant la commande que tu me propose en 1, je l'ai testée mais apparament vb ne la reconnait pas ? peut etre je me trompe de syntaxe.

    Néanmoins tu pensais peut etre a la commande DoCmd.OutputTo acOutputQuery.
    Celle ci je l'ai testée et en effet c'est très rapide (ca simule un "exporter vers") mais le problème est qu'on ne peut rien faire ensuite sur le fichier d'excel, pas de traitements, pas d'insertions de feuilles ...

    Concernant ta solution numéro 2, je l'ai testée également mais mon fichier ne se remplit avec rien du tout

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    D'où lance tu ton code d'Access ? ou de Excel ?

    Starec

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Par défaut
    Mon code est lancé depuis un bouton positionné sur un formulaire Access.

    J'ajoute que mon code initial fonctionne parfaitement seul les performances sont mauvaises.

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Par défaut
    Oulah je m'étais trompé dans ta 2eme solution, ca fonctionne A MERVEILLE ! merci infiniment

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon code n'est pas interprété !
    Par korriganez dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2006, 15h46
  2. [Exécutable]puis je creer un executable a partir de mon code ?
    Par youpileouf dans le forum Général Java
    Réponses: 3
    Dernier message: 17/06/2005, 09h15
  3. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 10h29
  4. Réponses: 1
    Dernier message: 21/02/2005, 12h40
  5. [langage] algo de bissection dans mon code
    Par killy dans le forum Langage
    Réponses: 5
    Dernier message: 19/01/2004, 18h35

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