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 :

[A-07] Selectionner toutes les lignes d'une liste


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 134
    Points : 52
    Points
    52
    Par défaut [A-07] Selectionner toutes les lignes d'une liste
    Salut à tous, sous Access 2003 j'ai toujours utilisé ce code simplissimal pour sélectionner d'un coup toutes les lignes d'une zone de liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Btn_Select_All_Click()
    Dim i As Long
    For i = 0 To Me.Lst_Pro.ListCount - 1
        Me.Lst_Pro.Selected(i) = True
    Next i
    End Sub
    la sélection était quasi immédiate quelque soit la quantité de lignes à sélectionner. Sous 2007, la sélection est beaucoup plus lente, et prend par exemple 5 à 6 secondes pour une zone de liste contenant 600 lignes.

    Avez-vous une idée du pourquoi du comment? utilisez-vous une méthode plus performante pour le même résultat?
    Merci pour toute idée
    a+ Pierre

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Tu n'aurais pas une procédure évènementielle 'on change' associée à ta zone de liste?

    Bon courage,

    PGZ

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 134
    Points : 52
    Points
    52
    Par défaut
    Ah! je n'y avais pas pensé! j'ai un évènement après mise à jour de la zdl, qui compte le nombre de lignes sélectionnées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.compte_liste = Me.Lst_Patient.ItemsSelected.Count
    mais j'ai toujours placé ce code dans les précédentes bdd access 03, sans que ça ralentisse le bouzin. Puis-je désactiver temporairement cet évènement AfterUpdate?
    merci pour ton aide!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 134
    Points : 52
    Points
    52
    Par défaut
    hum en fait j'ai désactivé le code précédent, même problème.

  5. #5
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    A tester : 600 lignes, ca fait pas mal ! Pourquoi ne pas essayer d'ajouter un champ Selection à ta table sous-jacente de ta liste que tu mets à jour par une requête ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 134
    Points : 52
    Points
    52
    Par défaut
    merci pour ta suggestion Gabout, en effet par sql mettre à jour 600 lignes c'est rien. Mais niveau ergonomie ça ne m'arrange pas, j'aime bien la sélection multiple des zones de liste, c'est très "visuel" pour l'utilisateur, en plus d'être souple pour la sélection / désélection de lignes.

  7. #7
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    La sélection de 600 lignes d'une liste de choix prend moins d'une seconde. J'ai chronométré sur VISTA/ ACCESS 2003 et VISTA/ ACCESS 2007.
    Si ça te prend 5 à 6 secondes, je continue de penser qu'il y a une procédure évènementielle là-dessous, liée au contrôle, ou au formulaire.

    Facile à voir, non?

    PGZ

Discussions similaires

  1. Afficher toutes les lignes d'une JTable ?
    Par n!co dans le forum Composants
    Réponses: 1
    Dernier message: 12/03/2007, 13h16
  2. Réponses: 6
    Dernier message: 19/02/2007, 13h34
  3. Concaténer toutes les lignes d'une colonne
    Par metalcoyote dans le forum Oracle
    Réponses: 6
    Dernier message: 10/05/2006, 15h51
  4. Réponses: 4
    Dernier message: 11/10/2005, 15h03
  5. cmt selectionner tout les champ d'une liste deroulante
    Par mangamat dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/03/2005, 10h08

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