dans Access 97 [SQL sous VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 14-02-2003 à 11:33:58
Loom the gloom a écrit :
|
pourquoi ? qu'est-ce qui ne va pas ?
Marsh Posté le 14-02-2003 à 11:49:27
ben vu la complexité du truc, c'est normal que ça puisse être lent sur n'importe quelle machine. Il faudrait ptet repenser cette requête en profondeur... Enfin a priori hein
Marsh Posté le 14-02-2003 à 11:57:12
Citation : Qu'en penser |
Que te voilà face à une belle usine à gaz pourri de partout et que tu risque de passer un bon bout de temps avant d'avoir quelque chose de propre !
Sans rire, ça semble vraiement mal conçu tout ça ...
Ce que je ferai dans un cas similaire : soit tu as le temps de tout refaire, soit tu laches le truc en disant à ton chef que c'est trop le bordel !
Bonne chance !
Marsh Posté le 14-02-2003 à 11:57:12
oui t'as certainement raison
quelle bordel qd on reprend un boulot comme cela ...
Marsh Posté le 14-02-2003 à 12:10:27
Hepil a écrit : oui t'as certainement raison |
ma remarque n'était pas méchante, tu sais
mais quand tu commences à sélectionner des dizaines de trucs, et qu'en plus, tu rajoutes des iif à foison, fo pas s'attendre à des perfs extra
qui plus est en cas de problème dans ta requete, tu auras un mal fou à trouver l'erreur
j'avais le même genre de requete lors de mon stage, et on m'a rapidement conseillé de laisser tomber et de revoir mon organisation...
Marsh Posté le 14-02-2003 à 15:36:42
oui c'est juste
en plus je ne conniassais pas l'existence de 'iif' dans une requête SQL ...
pas le temps de tout refaire
j'ai plus d'une vingtaine de requ^tes comme cela ...
Marsh Posté le 14-02-2003 à 10:20:59
Je dépanne et modifie des applis
dans l'une, j'ai cette requête, qui est lente ...
je ne vois pas quoi changer pourtant ...
et vous ?
SELECT sel_ToutesLignesAEditer.Libellé1Feuille, sel_ToutesLignesAEditer.Libellé2Feuille, sel_ToutesLignesAEditer.Libellé3Feuille, sel_ToutesLignesAEditer.Libellé4Feuille, sel_ToutesLignesAEditer.Libellé5Feuille, sel_ToutesLignesAEditer.Libellé6Feuille, sel_ToutesLignesAEditer.Libellé7Feuille, sel_ToutesLignesAEditer.Libellé8Feuille, sel_ToutesLignesAEditer.Libellé9Feuille, sel_ToutesLignesAEditer.SousTitre, sel_ToutesLignesAEditer.Cahier, sel_ToutesLignesAEditer.CahierAEditer, sel_ToutesLignesAEditer.OrdreCaBleu, sel_ToutesLignesAEditer.OrdreIdentifiant, sel_ToutesLignesAEditer.Direction, sel_ToutesLignesAEditer.CodGrp, sel_ToutesLignesAEditer.LibGroupe, sel_ToutesLignesAEditer.CodAge, sel_ToutesLignesAEditer.LibAgence, sel_ToutesLignesAEditer.OrdreFeuille, sel_ToutesLignesAEditer.NomFeuille, sel_ToutesLignesAEditer.FormatEntete, sel_ToutesLignesAEditer.NbParPage, sel_ToutesLignesAEditer.Libellé6Feuille, sel_ToutesLignesAEditer.EntêteColonne0, sel_ToutesLignesAEditer.EntêteColonne1, sel_ToutesLignesAEditer.EntêteColonne2, sel_ToutesLignesAEditer.EntêteColonne3, sel_ToutesLignesAEditer.EntêteColonne4, sel_ToutesLignesAEditer.EntêteColonne5, sel_ToutesLignesAEditer.EntêteColonne6, sel_ToutesLignesAEditer.EntêteColonne7, sel_ToutesLignesAEditer.LibelléBasDePage, sel_ToutesLignesAEditer.OrdreRegroup, sel_ToutesLignesAEditer.LibRegroup, sel_ToutesLignesAEditer.Regroup, sel_ToutesLignesAEditer.RegroupAEditer, sel_ToutesLignesAEditer.OrdreMétier, sel_ToutesLignesAEditer.Métier, sel_ToutesLignesAEditer.LibelléMétier, sel_ToutesLignesAEditer.CodGes, sel_ToutesLignesAEditer.Identifiant, sel_ToutesLignesAEditer.LibIdentifiant, sel_ToutesLignesAEditer.OrdreLigne, sel_ToutesLignesAEditer.Ligne,
IIf([sel_ToutesLignesAEditer]![LibelléLigne]="LibTOT","TOTAL " & [sel_ToutesLignesAEditer]![LibelléMétier] & " " & [sel_ToutesLignesAEditer]![LibIdentifiant],[sel_ToutesLignesAEditer]![LibelléLigne]) AS LibelléLigne,
TRAVAIL.TypeDeFeuille, TRAVAIL.T1_M12AA_1, TRAVAIL.T1_MM_1_AA, TRAVAIL.T1_MMAA, TRAVAIL.T1_MMAA_1, TRAVAIL.T1_Ecart, TRAVAIL.T1_ProgAnnee, TRAVAIL.T1_ProgAANivSup, TRAVAIL.T2_BaseM12AA_1, TRAVAIL.T2_Unité, TRAVAIL.T2_ObjAA, TRAVAIL.T2_RéalMMAA, TRAVAIL.T2_RéalAA, TRAVAIL.T2_PctRéal, TRAVAIL.T2_Trend, sel_ToutesLignesAEditer.FormatColonne1, sel_ToutesLignesAEditer.FormatColonne2, sel_ToutesLignesAEditer.FormatColonne3, sel_ToutesLignesAEditer.FormatColonne4, sel_ToutesLignesAEditer.FormatColonne5, sel_ToutesLignesAEditer.FormatColonne6, sel_ToutesLignesAEditer.FormatColonne7, sel_ToutesLignesAEditer.HauteurLigne, sel_ToutesLignesAEditer.InterLigne, sel_ToutesLignesAEditer.TraitTop, sel_ToutesLignesAEditer.TraitBottom, sel_ToutesLignesAEditer.NomPolice, sel_ToutesLignesAEditer.StylePolice, sel_ToutesLignesAEditer.SizePolice, sel_ToutesLignesAEditer.CouleurFond, sel_ToutesLignesAEditer.StyleTrait, sel_ToutesLignesAEditer.CouleurTrait, sel_ToutesLignesAEditer.EpaisseurTrait
FROM sel_ToutesLignesAEditer INNER JOIN TRAVAIL ON (sel_ToutesLignesAEditer.Ligne = TRAVAIL.Ligne) AND (sel_ToutesLignesAEditer.Identifiant = TRAVAIL.Identifiant)
ORDER BY sel_ToutesLignesAEditer.Cahier, sel_ToutesLignesAEditer.OrdreCaBleu, sel_ToutesLignesAEditer.Direction, sel_ToutesLignesAEditer.CodGrp, sel_ToutesLignesAEditer.CodAge, sel_ToutesLignesAEditer.OrdreFeuille, sel_ToutesLignesAEditer.OrdreRegroup, sel_ToutesLignesAEditer.OrdreMétier, sel_ToutesLignesAEditer.CodGes, sel_ToutesLignesAEditer.OrdreLigne;
je me dois de préciser que "sel_ToutesLignesAEditer" est une requête qui elle-même en appelle deux autres, et ainsi de suite, sur 7 niveaux !!!
En fait, il y a des requêtes différentes en fonction de ce qu'il y a à rechercher dans la BDD, au lieu d'insérer des "variables chaîne de caractères" pour reconstruire la requête directement dans le code
Il parait que faire plusieurs requêtes dans Access et choisir celle que l'on veut utiliser est plus rapide en traitement que d'en avoir une seule dont le "contenu" peut changer en fonction de divers paramètres ...
qu'en penser ?
Message édité par Hepil le 14-02-2003 à 10:29:59