Bon, puisque tout le monde y va de son petit couplet ....
J'ai voté QBE, même si la plupart d'entre les participants assidus à ce forum ont constaté que je m'éclatais à écrire le SQL.
Pourquoi ?
1/ Il faut arrêter la masturbation intellectuelle : L'heure n'est pas au codage, mais à la génération. Question : quelle est la différence entre un développeur qui passe une demie-heure à sortir une requête complexe mais qu'il a écris en SQL et un développeur qui fait la même chose en 10 minutes avec le QBE ? Quelle est sa valeur ajoutée ? Aucune => dehors !
2/ Je déteste les faux arguments, et j'en ai vu plusieurs dans ce thread :
Je code mes requêtes en dur dans le VBA et donc, cela me ralentis : Microsoft DECONSEILLE FORTEMENT de coder les requêtes en dur dans la VBA, mais CONSEILLE FORTEMENT de faire des appels à des requêtes. Par conséquent, les cas où le hardcodage des requêtes dans le VBA se doit d'être exceptionnel.
Les parenthèses, y'en a trop : On s'en fout, c'est généré, et ca marche...
Le générateur d'expressions est bidon : Faut juste savoir s'en servir. La syntaxe donnée en exemple est appliquée de la même manière dans le SQL. Ceci n'a donc aucun rapport avec le sujet QBE<=>SQL, et se solutionne via le générateur ou le SQL de la même manière qu'en SQL...
RechDom('LeChamp','LeDomaine','LeCritere=' & chr(34) & LaValeur & chr(34))
Il ne fait que des INNER JOIN au lieu de faire des WHERE : Heureusement encore ! C'est sensé optimiser les requêtes ! Les liens dans le WHERE sont déconseillé depuis la norme 2 du SQL. Maintenant, en cliquant droit sur une jointure, on peut aussi faire LEFT JOIN ou RIGHT JOIN.
Maintenant, comme je le dis habituellement, le QBE n'est qu'un assistant dont il faut connaitre les limites, car il est limité.
Impossible de faire des jointures sur des inégalités
Impossible de faire des requêtes correllées
...
Donc, à mon avis (et cela n'engage que moi), un bon développeur va utiliser le QBE pour sa productivité, mais connaitra suffisamment bien le SQL pour se passer de cet assistant lorsque ce dernier atteindra ses limites, et résoudre ainsi des problèmatiques qu'il n'abordera même pas.
Partager