|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2009 Messages : 13 ![]() |
Bonjour !!
Configuration : Access 2007 (front) SQL serveur 2005 (Back) Connection ODBC J'utilise dans un formulaire des listes déroulantes pour sélectionner la ligne voulu et afficher le détail en dessous. J'ai environ 10 000 données qui doivent être filtrées suivant des critères pour arrivée à environ 3000 données qui alimentent ces listes déroulantes. Le problème c,est que la sélection et l'excecution met beaucoup trop de temps au point de faire planter le logiciel parfois. J'ai même testé les "views" de SQL serveur pour excécuter les requêtes depuis le serveur en vain.... Avez-vous une idée pour remédier à ca ? Merci |
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 466 ![]() |
As-tu beaucoup de jointures ?
Si les enregistrements de tes sources sont toujours les mêmes ou varient peu, tu pourrais peut-être considérer d'en faire des tables soit dans Access soit dans MS-SQL Server. Regarde aussi les requêtes 'SQL Direct' qui te permettent de faire exécuter du SQL natif MS-SQL Server par MS-SQL Server à partir de Access. 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. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2009 Messages : 13 ![]() |
Merci pour ta réponse si rapide.
J'ai effectué des "views" dans SQL serveur avec tous les filtres, de la linker à access (ODBC) et d'alimenter la liste déroulante mais sans succès. En gros la view te sert comme de table dans access. Est-ce que ce dont tu parles est le même principe ? |
|
|
00
|
|
|
#4 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 466 ![]() |
Non, je parle d'objet non dynamique pour qu'il n'y a pas de recalcule à chaque fois. Si je ne me trompe pas une vue MS-SQL c'est comme une requête Access sauf que c'est MS-SQL qui fait le travail.
En Oracle, il existe des vues matérialisées. Ce sont des requêtes spéciales qui générent une table et c'est cette table qui utilisée comme source de données et comme c'est une table la réponse est presque instantannée. Autre piste, travailler avec un sous-ensemble de tes données (par exemple, si ce sont des noms : tous les noms qui commence par "M") ce qui réduit le nombre d'élément dans ta liste déroulante. 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. |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour à tous,
Je me permets de m'immiscer sur un point particulier : Citation:
En aparté, je trouve que le terme "vue" est très bien choisi : il induit qu'il n'y a pas, réellement, de traitement lors de l'accès, juste une "vue" de l'état actuel.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#6 | |
![]() ![]() |
Bonjour,
Citation:
__________________
- De quelque manière qu'on s'y prenne on s'y prend toujours mal - -Sigmund Freud- Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL Tous les cours Office
|
|
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Chtulus,
Citation:
Ce serait dommage que SQL Server déclenche la requête à chaque appel de la vue... toute la puissance du concept tomberait à l'eau... Un test sur une vue complexe serait nécessaire... mais peu de temps, en ce moment.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#8 |
![]() ![]() |
Re,
Je n'ai pas remis en cause l'utilisation de vues, au contraire. Mais si vous utilisez ces vues comme les tables liées, cela ne servira à rien (Enfin si mais pas dans ce cas présent). Attaquez directement le Serveur... Pour faire simple, une requête/vue avec une jointure simple sur 2 tables: - Liées : Envois 2 SELECT * au serveur. Il mouline, vous renvoit le tout (SELECT * FROM table1 et SELECT * FROM table 2) et Access finit le boulot (Jointures + Condition WHERE). - Non liées : Envois le texte de la requête. Mouline, et renvois à Access la partie des données qui vous intéressent (Colonne(s) du SELECT + Lignes correspondantes au(x) filtre(s) du WHERE).
__________________
- De quelque manière qu'on s'y prenne on s'y prend toujours mal - -Sigmund Freud- Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL Tous les cours Office
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Chtulus,
Alors l'intérêt des vues est largement amoindri... dommage.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : février 2009 Messages : 13 ![]() |
Hello !
Je pense avoir trouvé une solution : Mettre dans la source du formulaire les tables au complet ("*") sans condition (sans WHERE) Dans chaque liste déroulante mettre la requête que l'on veut. Ca va apparemment beaucoup plus vite et mon formulaire ne plante plus. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com