Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 23/08/2011, 11h56   #1
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 5
Points : 5
Par défaut Optimisation d'un état

Bonjour,

Travaillant sur une base Access lors des tests de temps d'éxécution sur le réseau, j'ai eu un état qui avait énormément ralenti (il est passé de 1 secondes d'éxécution à 8 secondes).

Après plusieurs tests d'optimisation, je me suis rendu compte que l'état ralentissait suite à l'implémentation de deux sous état. Ces sous états permettent d'afficher les membres participant à une expertise, la source de contrôle de ces sous états concaténent tous les membres participant à une expertise afin de les afficher dans le sens souhaité. Voici un exemple (repris du site)du module utilisé.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function Recupmembre(Compteur As Long) As String
Dim res As DAO.Recordset
Dim SQL As String
 
'Selectionne les membres de l'expertise
SQL = "SELECT membre FROM participer WHERE compteur =" & Compteur
Set res = CurrentDb.OpenRecordset(SQL)
'Concatene les différents enregistrements
While Not res.EOF
 
Recupmembre = Recupmembre & res.Fields(0).value & ", "
res.MoveNext
 
Wend
'Enleve le dernier espace
Recupmembre = Left(Recupmembre, Len(Recupmembre) - 2)
'libere la mémoire
Set res = Nothing
End Function]
Une des requêtes de la source de controle d'un sous état
Code :
1
2
SELECT DISTINCT Recupmembre(compteur) AS [Les membres de la commission], participer.compteur
FROM participer;]
Peut être que le ralentissement ne vient pas de la mais lorsque j'ai réalisé des tests avec ses sous états ou sans la différence était flagrante

Grâce au tuto que j'ai trouvé sur le site j'ai pu optimiser la base de données mais je ne vois pas comment améliorer cet état. J'ai tenté de virer les sous états de remplacerpar des zones de textes en modifiant la source de contrôle le résultat était pire.

Quelq'un aurait il une idée ?

Merci d'avance

Cordialement
claude21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 14h43   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Tu pourrais peut-être remplacer ta concaténation par un sous-formulaire qui affiche tes données en colonne.

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 10
Vieux 23/08/2011, 14h46   #3
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 620
Points : 30 954
Points : 30 954
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Le ralentissement est normal, car à chaque changement d'enregistrement dans ton état, il recalcul le sous-état.

J'ai le cas en ce moment.

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.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/08/2011, 15h48   #4
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 5
Points : 5
Bonjour,

Merci beaucoup pour ces réponses rapides.
Effectivement j'ai testé via un formulaire en colonnes je n'ai même pas eu le temps de démarrer mon chronomêtre que l'état était déjà généré ^^
Cela m'obligerait à revoir la mise en forme de l'état de facon à intégrer de manière agréable les participants verticalement plutôt qu'horizontalement mais l'idée est excellente

Dommage qu'il n'y est pas une solutions dans l'autre cas
claude21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 15h50   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Autre idée, faire le calcul dans une table temporaire avant d'ouvrir le rapport.

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 24/08/2011, 09h37   #6
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 5
Points : 5
Bonjour ,

Désolé de répondre aussi tard. On m'a demandé de réaliser deux trois choses en plus et je n'avais pas encore eu le temps de m'y replonger depuis hier.

Pour la table temporaire j'ai du mal à voir la mise en oeuvre. Je dois faire une requête mise à jour afin de stocker tous les membres concaténés dans la table temporaire puis mettre cette table en source afin que ma zone de texte se remplisse ?
claude21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 13h26   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 474
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 474
Points : 7 560
Points : 7 560
Citation:
Pour la table temporaire j'ai du mal à voir la mise en oeuvre. Je dois faire une requête mise à jour afin de stocker tous les membres concaténés dans la table temporaire puis mettre cette table en source afin que ma zone de texte se remplisse ?
Exactement, tu peux aussi peut-être le faire à la saisie et avoir un champ concaténé dans ta table principale. Ce n'est pas recommandé en standard mais quand on a des problèmes de performance c'est un compromis acceptable.

Enfin tu peux aussi vendre l'idée que 8 secondes c'est un délais acceptable et que ton temps pourrait être employé ailleur :-).

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 25/08/2011, 09h11   #8
Invité régulier
 
Homme
Étudiant
Inscription : juin 2011
Messages : 13
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juin 2011
Messages : 13
Points : 5
Points : 5
Bonjour,

Finalement j'ai opté pour remanier mon état j'ai un meilleur temps d'éxécution
Après le temps aurait pu être utilisé pour autre chose je suis d'accord mais bon "ce que l'utilisateur veut l'informaticien le veut aussi " ^^
Merci pour ces réponses je mets le post en résolu

Cordialement
claude21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h34.


 
 
 
 
Partenaires

Hébergement Web