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

Macros et VBA Excel Discussion :

VBA Excel - Openrecordset extrêmement lent


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Par défaut VBA Excel - Openrecordset extrêmement lent
    Bonjour à tous,

    Je viens à vous car je rencontre un problème vraiment étrange que je n'arrive pas à comprendre malgré tous mes essais.
    J'utilise depuis très longtemps du code vba pour accéder à mes bases de données depuis excel comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
     
    Set db = OpenDatabase("C:\Users\contact\Documents\database.mdb")
    Set rs = db.OpenRecordset("SELECT * FROM MaTable")
     
    rs.Close
    db.Close
    Rien d'exceptionnel donc.
    Cependant, en testant ce code sur un nouvel ordinateur, la commande openrecordset met 10 secondes à s'exécuter.
    Je tiens à préciser que database.mdb pèse 644kb et que la table MaTable comporte seulement 10 enregistrements.

    J'ai testé en créant un fichier excel vierge et en n'y mettant que le bout de code ci-dessus sans succès.
    En enlevant le "DAO." non plus.
    J'ai également essayé de changer les références du projet en testant "Microsoft DAO 3.6" et "Microsoft Office 14.0 Access Database Engine" mais rien n'y fait.

    Je ne vois plus quoi tester ni comment.
    Quelqu'un aurait une idée ?

    Merci

  2. #2
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonjour,

    Si c'est en lecture seule, il faut ajouter "ReadOnly:=True".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set db = OpenDatabase("C:\Users\contact\Documents\database.mdb", ReadOnly:=True)
    Attention au "select *" s'il y a bcp de colonnes.

    La référence "Microsoft DAO 3.6" est OK.

    Je ne vois vraiment rien de particulier

    Cdlt

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Compacte la base si tu ne l'as pas fait.

Discussions similaires

  1. Script vba excel trop lent
    Par zootman dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/07/2006, 14h27
  2. [vba-excel] Le temps de fermeture trop court ?
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 10h03
  3. [VBA-Excel]
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/01/2005, 10h17
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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