Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2011, 14h03   #1
Nouveau Membre du Club
 
Homme
ingénieur essais électronique
Inscription : mai 2011
Messages : 128
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : ingénieur essais électronique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 128
Points : 37
Points : 37
Par défaut requete access ou SQL et VBA

Petite question :

Vaut il mieux réaliser ses requetes sous access (avec l'éditeur graphique) ou direct en SQL dans VBA ?

Avantages et inconvénients des deux méthodes ?
sylv20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 14h45   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Personnelement je trouve qu'écrire les requêtes avec l'éditeur permet de les écrire plus vite (Access s'occupe de la syntaxe) et de les contrôler plus facilement puisqu'on peut voir le résultat immédiatement.

Et une requête est visible si elle est dans la liste des requêtes ce qui, je trouve, facilite le débuggage.

Au niveau performance, en théorie une requête en VBA est moins performante qu'une requête enregistrée car Access ne peut pas l'optimiser avant son exécution.

À l'usage je n'ai pas constaté de différence notoire.

Appeler une requête en VBA qu'elle soit enregistrée ou dans le code n'est pas très différent et ne nécessite pas d'effort majeur.

Personnellement je n'utilise le SQL dans le VBA que pour :
  1. le vidage des tables (DELETE * FROM MaTable)
  2. les requêtes de sélection où la clause where est dynamique
  3. l'éditeur de requête ne permet pas de faire cette requête (très rare !)

Le reste du temps je refuse d'être privé du confort de l'éditeur de requête qui permet en quelques glisser/déplacer de réaliser des requêtes extrèment complexes (ex : Une table et 15 autres tables en jointure = 1/2h de travail avec les vérifications).

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 08h45   #3
Nouveau Membre du Club
 
Homme
ingénieur essais électronique
Inscription : mai 2011
Messages : 128
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : ingénieur essais électronique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 128
Points : 37
Points : 37
Ce que je trouve embettant c'est d'avoir tout un tas de requete dans la liste. On s'y retrouve moins bien, c'est le bazarre.

En effet ca a tous les avantages du graphique : rapidité et simplicité.

Et tu prefere le VBA ou l'aditeur de macro access ?

Ce que j'apprécie dans le vba c'est de pouvoir tout y mettre (macro, requete + code etc...)
sylv20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 10h17   #4
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 074
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 074
Points : 4 381
Points : 4 381
Envoyer un message via Skype™ à GAYOT
Bonjour
Chacun a sa philosophie.
Pour ma part elles sont pratiquement toutes écrites en vba (même si je m'aide du Qbe). Comme cela elles sont créées dynamiquement en fonction des besoins, puis supprimées.
Les puristes de la performance crieront que ce n'est pas top, mais j'y vois un gros avantage: Même si quelqu'un bidouille une requête elle sera recréée telle qu'elle a été conçue...
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 13h42   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Citation:
Envoyé par sylv20 Voir le message
Et tu prefere le VBA ou l'aditeur de macro access ?
Je préfère le QBE mais comme le dit GAYOT , c'est aussi un point de vue personnel. Je lis assez mal le SQL donc pour comprendre une requête, généralement, je la colle dans le QBE et je la regarde graphiquement.

Et pour avoir fait de la rétro ingénieurie sur des bases, le SQL dans le code, je ne trouves pas cela exitant du tout.

J'ai aussi une vue un peu ségrégationniste sur le sujet : le SQL c'est pour les requête, le VBA c'est pour le code et si je peux quand je parle à une autre BD (ex : Oracle) j'utilise des procédure stockées qui encapsulent complètement la complexité des requêtes ou modules appellés.

Pour ce qui est de la liste, je suis d'accord avec toi, ça peut devenir rapidement confus. La solution que j'ai adoptée est d'avoir une politique de nommage rigoureuse de manière a repérer rapidement ce qui m'interresse. Note qu'avec 2003 et suivante on peut créer des groupes d'objets qui peuvent faciliter l'organisation des tes éléments. J'ai, par exemple, fait un groupe démarage où je mets mon formulaire de démarage et éventuellement ma macro AutoExec.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 22h40   #6
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 446
Points : 4 446
Bonsoir,

Je ne retrouve plus la source Microsoft qui parle de ça mais de mémoire, les requêtes enregistrées à partir du QBE sont compilées à la première exécution (et recompilée à l’exécution seulement si la requête est modifiée ou la base compactée). La compilation consomme un peu de temps mais une fois compilée, l’exécution est en principe plus rapide.

Or il me semble que si la requête n’est pas enregistrée à partir du QBE mais rédigée dynamiquement à partir de VBA, la requête sera systématiquement compilée avant d’être exécutée.

A confirmer, ça me semble quand même bien théorique
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 08h57   #7
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
Bonjour à tous,

J'ai eu des cours sur du SQL pendant ma dernière année de master et j'ai maintenant plutot (voir un peu trop) l'habitude de les taper à la main avant d'essayer de les faire fonctionner et ça me permet aussi de voir où il pourrait y avoir un problème, si problème il y a.

Donc pour moi le mieux c'est de les taper directement...
Mais ayant déjà utilisé l'éditeur graphique, je trouve qu'il peut apporter de l'aide qd on s'y connait pas trop, enfin c'est l'impression que j'ai.
__________________
Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h56.


 
 
 
 
Partenaires

Hébergement Web