|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Martial Inscription : mars 2003 Messages : 16 ![]() |
Bonjour,
J'ai créé une base de données composées de divers tables, requêtes, formulaires et états, du code VBA et des macros. Les formulaires et les états sont accessibles via un formulaire de navigation (9 onglets dont 8 directement liés sur des recordsets) Le base est partagées en 2 (programme d'un côté, base de l'autre) Mon problème est le suivant : Lorsqu'un seul utilisateur est connecté tout fonctionne nickel Dès qu'un 2è utilisateur se branche sur la base les temps de réponses deviennent très longs, la requête met un temps fou à être traitée Si le premier utilisateur va sur le premier onglet (celui du formulaire d'accueil, sans recordset), ou ferme le programme cela accélère le traitement pour le 2è utilisateur. Et je ne vous parle pas de la vitesse lorsque 10 utilisateurs sont connectés. De plus j'ai remarqué que la partie du programme qui initialement fait 1948ko, augmente, augmente, augmente... En 6 heures elle a atteint le 30 Mo. Elle là, même si tous les utilisateurs ont quitté le programme, ça galère encore... Quelqu'un aurait-il la solution miracle ? D'avance un grand merci. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Les miracles c'est comme le père-noël... ![]() Bref ! Dans un premier je chargerais les recordsets lors de l'activation de l'onglet, et je déchargerais le précédent qui n'est plus utilisé. La règle d'or est de n'utiliser que ce que l'on a besoin et jamais plus. En même temps je consulterais le tuto sur le sujet : http://loufab.developpez.com/tutorie.../optimisation/ Des fois que l'une (ou plusieurs) des règles ne soit pas respectée. cordialement
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Martial Inscription : mars 2003 Messages : 16 ![]() |
Oh Noël c'est vite là..........
Déjà merci. Juste je ne vois pas comment faire pour charger, respectivement décharger les recordset... Pas encore lu ton tuto mais je m'y attaque... |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Su l'événement clic du controle onglet tu détermine l'index de la page et y a plus qu'à !
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#5 |
|
Invité de passage
![]() Martial Inscription : mars 2003 Messages : 16 ![]() |
Je vais tester ça mais il me semble que cela soit plus compliqué que ça...
En effet, j'ai fait le test en ouvrant sur le poste 1 juste l'état qui exécute une requête pour afficher une liste de documents. Nikel. Sur le poste 2, je tente de faire la même chose... ça galère ! Même en ne lançant que la requête ! J'ai aussi essayé d'enlever le code VBA et de mettre la requête directement dans les propriétés de l'état... idem |
|
|
00
|
|
|
#6 |
![]() ![]() |
Bonjour
Tu dis que la base est partagé en deux, c'est à dire les tables sur le serveur et les formulaires etc.. sur chaque poste, exact ? Cela peut également provenir du réseau. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Martial Inscription : mars 2003 Messages : 16 ![]() |
Les tables sont sur le réseau.
Pour le reste du programme j'ai tout essayé. Sur le réseau ou en local, le résultat est le même. Dans l'idéal il faudrait que je puisse laisser le programme sur le réseau car comme il s'agit d'une application utilisée à titre professionnel, je n'ai pas le contrôle du PC. Le service informatique peut débarquer et changer la caisse !!!! Je ne pense pas que cela vienne du réseau car si un seul utilisateur est connecté cela fonctionne nikel. J'ai aussi fait le test sur mes PC privés en réseau, le problème existe aussi. |
|
|
00
|
|
|
#8 |
![]() ![]() |
Re
Alors comme l'indique Loufab, cela doit provenir de la conception même du code. As-tu lu le lien vers le tuto qu'il t'indique ? Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Martial Inscription : mars 2003 Messages : 16 ![]() |
oui j'ai bien le lien mais à première vue tout me parait correct
C'est d'autant plus bizarre que si j'enlève tout le code et que je mets directement la requête dans les propriétés de l'état cela patime la même chose. Par contre une chose que j'ai remarqué. Une fois l'état chargé, sur cet état j'ai un bouton qui me permet de rechercher certains enregistrements. La requête est créée en VBA puis placée dans les propriétés de l'état. Et là ça s'exécute à vitesse normale.... Mais si je sors de l'état et que j'y reviens c'est de nouveau la galère.... J'espère avoir été clair... c'est pas facile à expliquer... |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Martial Inscription : mars 2003 Messages : 16 ![]() |
Une chose que je viens de remarquer. Je n'en suis pas 100% sûr, je dois encore tester...
Il semble que le blocage n'ait lieu que sur les états et pas sur les formulaires. Cela donne-t-il une piste à quelqu'un ? |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Donc un problème de requete sur les états. Qu'indique les traces JetShowPlan ?
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#12 |
|
Invité de passage
![]() Martial Inscription : mars 2003 Messages : 16 ![]() |
Les traces de JetShowPlan ?
Là je ne vois pas ce que tu veux dire... Où est-ce que je trouve ces traces ? |
|
|
00
|
|
|
#13 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Visiblement tu n'as pas fini de lire le tuto...
Allez je te laisse quelques jours pour le terminer et surtout APPLIQUER les règles qui y sont décrites.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#14 |
|
Invité de passage
![]() Martial Inscription : mars 2003 Messages : 16 ![]() |
Pour le JetShowPlan, le problème c'est que j'ai Access 2010. Je n'ai pas trouvé le chemin dans la base de registre. J'ai changé le 12 en 14 mais je n'ai pas la suite... Est-ce que je dois créer la suite à la main ou est-ce que pour Access 2010 le chemin est différent ?
Autre question avec l'indexation des champs. Avec une table contenant déjà des enregistrements, si je modifie les champs indexés, ça prend en compte pour les enregistrements déjà créé ou ai-je une manipulation à faire ? |
|
|
00
|
|
|
#15 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Oui ça les prend en compte mais les tables d'optimisation sont mises à jour par le compactage. Donc compactage obligatoire.
Je vais regardé le jetshowplan pour 2010.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#16 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Pour le jetshowplan c'est apparement le même chemin.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
Copyright © 2000-2012 - www.developpez.com