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 :

Plus rapide : Requête dans module VBA ou en dur? [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut Plus rapide : Requête dans module VBA ou en dur?
    Bonjour,

    J'aimerais savoir s'il vaut mieux créer des requêtes "en dur" pour s'en servir dans les différents formulaires ou s'il vaut mieux créer un module avec une fonction public contenant le code de la requête puis faire un DoCmd.RunSql...?

    La seconde solution est plus propre à l'oeil (on n'a pas 15000 requêtes en dur) et j'ai l'impression que ça s'exécute plus vite.

    Votre avis sur ces 2 questions? (Propreté pour s'y retrouver plus tard et rapidité d'exécution)

    Au passage, je me demandais aussi si les choix pouvaient changer suivant le nombre d'enregistrements considérés. Par exemple il pourrait mieux valoir du code VBA pour exécuter une action si le nombre d'enregistrements ne dépasse pas 1000 et préférer une requête en dur au-delà...?

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Merci Gabout!

    Par contre comme access ne permet pas de classer les requêtes par dossiers, je trouve qu'on s'y retrouve difficilement quand elles sont en vrac.
    Est-ce que je perdrai beaucoup en performances si je met le code de la requête en VBA et qu'à chaque appel, je la construit en dur, je m'en sers puis je la supprime? (pour les requêtes à paramètres indexés)
    Ou vaut-il mieux la garder en VBA car plus facile de s'y retrouver?

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Une requête sauvegardée en tant qu'objet Access est potentiellement plus rapide parce qu'elle a été compilée et optimisée lors de sa première exécution.
    Il y a donc un petit gain de temps, car lors des prochaines exécutions il n'y aura pas compilation et optimisation.
    C'est pour cela qu'il est recommandé d'exécuter toutes les requêtes au moins une fois, avant de livrer une application à un utilisateur.
    Si tu crée une requête dynamiquement et que tu la supprimes, tu perds le bénéfice de la première exécution.

    Un lien qui peut t'intéresser : Optimisation Requêtes, suivit d'une description de l'optimisation Rushmore.


    Concernant ta question initiale, et le fait qu'il est difficile de s'y retrouver quand on a beaucoup de requêtes,
    tu pourrai essayer d'appliquer une convention de nommage de tes requêtes.
    Cf cette discussion

    A+

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Merci LedZeppII!

    Tes liens sont super intéressants, notamment celui-ci :
    http://www.developpez.net/forums/d18...sieurs-sommes/

    Mais il va me falloir du temps pour comprendre tout ça, l'appliquer et revoir mon application...

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

Discussions similaires

  1. [AC-2010] Utilisation de requête dans du VBA
    Par Eva06 dans le forum VBA Access
    Réponses: 5
    Dernier message: 19/08/2013, 21h11
  2. Je n'ai plus l'aide dans le VBA
    Par possible924 dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/02/2013, 20h40
  3. [AC-2003] Module VBA dans requête : Erreur "Fonction non définie dans l'expression"
    Par laurentw dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 12/11/2011, 14h32
  4. Optimiser les requêtes dans du vba
    Par bobosh dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/08/2008, 15h36
  5. Requête et Module VBA
    Par Telemak dans le forum Access
    Réponses: 1
    Dernier message: 15/10/2005, 13h04

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