IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Formulaire : Temps d'exécution trop long


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Analyste-Développeur BI
    Inscrit en
    Mai 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Développeur BI

    Informations forums :
    Inscription : Mai 2011
    Messages : 61
    Par défaut Formulaire : Temps d'exécution trop long
    Bonjour à tous,
    Dans un formulaire , j'utilise une liste de choix et un sous-formulaire au format feuille de données.
    Lorsque je sélectionne une valeur dans la liste de choix, le sous-formulaire se met à jour via une procédure vba.
    Mon soucis est que déjà, en ouvrant le formulaire, la liste de choix met quelques secondes à s'ouvrir. Les valeurs de cette liste sont issues d'une requête via une requête SQl:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT [Prix - PN].[FiguTitle] FROM [Prix - PN] ORDER BY [Prix - PN].[FiguTitle] ;
    qui se trouve dans le champs Contenu des propriétés.
    Puis, après sélection de la valeur dans le liste de choix, une procédure s'exécute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub TitreFigure_AfterUpdate()
        Dim strSQL As String, strTitre As String
        
        If TitreFigure.Text <> "" Then
            strTitre = Me!TitreFigure.Text
            ' Création de la requête source en SQL
            strSQL = "SELECT [Prix - PN].[PN], [Prix - PN].[Désignation], [Prix - PN].[Prix] "
            strSQL = strSQL & "FROM [Prix - PN] WHERE [Prix - PN].[FiguTitle]= '"
            strSQL = strSQL & strTitre
            strSQL = strSQL & "'"
            
            ' Affectation de la requête SQL au sous-formulaire
            SousForm.Form.RecordSource = strSQL
            SousForm.Requery        
        End If
    End Sub
    Et donc là, c'est au niveau des lignes en gras (en rouge) que ça prend trop de temps à s'exécuter.
    Est-ce que quelqu'un aurait une solution pour alléger tout cette exécution?!
    Merci de vore aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Personnellement je remplacerai ta requête en code par une requête permanante

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [Prix - PN].[PN], [Prix - PN].[Désignation], [Prix - PN].[Prix]
    FROM [Prix - PN] WHERE [Prix - PN].[FiguTitle]= """" & [Forms]![NomTonForm]![TitreFigure] & """"

    Cela devrait permettre à Access d'optimiser le plan d'éxcution ce qu'il ne peut pas faire avec du SQL à la volée.

    Ensuite je lancerai l'analyseur de performance. Il fait généralement de bonnes sugestions pour l'ajout d'indexs et de relations.

    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Femme Profil pro
    Analyste-Développeur BI
    Inscrit en
    Mai 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-Développeur BI

    Informations forums :
    Inscription : Mai 2011
    Messages : 61
    Par défaut
    Merci pour ta réponse ùmais malheureusement, j'ai pas eu le temps de la tester.
    Alors que tout fonctionnait parfaitement (malrgré un temps d'exécution un peu long), j'ai maintenant une erreur que je ne comprend pas et que je n'arrive absolument pas à résoudre :

    "La méthode 'Form' de l'objet '_SubForm' a echoué"

    Celle-ci a lieu dans la fonction AfterUpdate de la liste déroulante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SousForm.Form.RecordSource = strSQL
    J'ai vu sur d'autre forum que c'était un peu spécifique à Access97 mais je vois vraiment pas comment résoudre ce problème...?!

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Aucune idée.
    Essaye :

    1. sauvegarder ta base
    2. reparer la base


    Si cela ne donne rien crée une nouvelle discussion avec ta question comme sujet.

    Aussi précise l'OS que tu utilises (c'est XP je présume, n'est-ce pas ?).

    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [XL-2010] Temps d'exécution trop long
    Par pomdeterfrite dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/05/2012, 18h41
  2. [AC-2007] Temps d'exécution trop long.
    Par Butler211 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/05/2012, 15h15
  3. Arreter les requêtes ayant un temps d'exécution trop long
    Par shaftJackson dans le forum PL/SQL
    Réponses: 1
    Dernier message: 24/02/2010, 15h13
  4. [TCPDF] Temps d'exécution trop long
    Par -Neo- dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 06/11/2009, 12h08
  5. temps d'exécution trop long trés bizarre
    Par fatjoe dans le forum C++
    Réponses: 0
    Dernier message: 09/05/2008, 02h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo