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 18/08/2011, 17h08   #1
Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 47
Points : 46
Points : 46
Par défaut Optimisation de code !

Bonjour/Bonsoir à tous,

Mon appli Access possède une fonctionnalitée permettant d'afficher un état en fonction de la valeur d'une liste de type combo list.
En somme, mon état des donées dynamiquement selon la valeur de sélectionnée par la liste.

J'ai donc mi au point le code suivant :

Code :
1
2
3
4
5
6
7
8
 SQL = "SELECT champs1, champs2 etc .. FROM MaTable Where champs1 = ' " & Me.cmbMaListe.Value " ';"
 
        DoCmd.OpenReport "R_Test", acViewDesign, , , acHidden 'Obligation de passer par la design view pour modifier la propriétée RecordSource d'un état. 
        Set rpt = Reports![R_Test]
        rpt.RecordSource = SQL
        DoCmd.Close acReport, "R_Test", acSaveYes
 
        DoCmd.OpenReport "R_Test", acViewPreview
Cela fonctionne parfaitement bien mais j'obtient un temps d'exécution juste pas acceptable (de l'ordre de 10 secondes) dû à la double ouverture de l'état en question (en réalité je fait pareil avec un sous état donc il y a 2 ouvertures d'états avant l'ouverture de l'état principal).

Avez-vous des idées d'améliorations ?

Merci d'avance
Nitsuja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 17h24   #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
À part la partie Where champs1 = ' " & Me.cmbMaListe.Value " ';" y-a-t'il quelque chose qui change dans ton SQL ?

Si non, le plus simple est d'enregistrer ta requête SQL (ex : MaSuperRequete) en changeant Me.cmbMaListe.Value pour [forms]![NomTonForm]![cmbMaListe] puis de définir la comme source de ton rapport.

Access va récupérer automatiquement la valeur contenue dans ton champ et l'appliquer à ta requête donc à ton rapport.

Cela évitera la modif des rapports.

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 18/08/2011, 17h31   #3
Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 47
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 47
Points : 46
Points : 46
Ah bah c'est parfait ça :-)

Merci marot_r
Nitsuja 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 16h17.


 
 
 
 
Partenaires

Hébergement Web