Sélection des élèments d'une zone de liste
Fermé
Juliaz
Messages postés
18
Date d'inscription
mardi 28 mars 2017
Statut
Membre
Dernière intervention
28 mai 2017
-
26 mai 2017 à 10:57
yg_be Messages postés 23268 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 octobre 2024 - 28 mai 2017 à 13:57
yg_be Messages postés 23268 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 octobre 2024 - 28 mai 2017 à 13:57
A voir également:
- Sélection des élèments d'une zone de liste
- Zone telechargement - Accueil - Outils
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte. - Guide
- Liste de diffusion whatsapp - Guide
7 réponses
Juliaz
Messages postés
18
Date d'inscription
mardi 28 mars 2017
Statut
Membre
Dernière intervention
28 mai 2017
28 mai 2017 à 08:36
28 mai 2017 à 08:36
Merci yg_be, la désélection avant le requery était la solution.
Tout marche très bien!!
Merci encore d'avoir pris de ton temps pour résoudre mon problème.
Bonne journée !!
Tout marche très bien!!
Merci encore d'avoir pris de ton temps pour résoudre mon problème.
Bonne journée !!
yg_be
Messages postés
23268
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2024
Ambassadeur
1 544
26 mai 2017 à 13:21
26 mai 2017 à 13:21
bonjour,
CSEtab est bien le nom de ta zone de liste?
pourrais-tu expliquer comment cela se comporte quand cela ne fonctionne pas?
si je comprends bien, cela fonctionne jusqu'au moment où tu réduis le nombre d'éléments dans la zone de liste, c'est bien cela?
je me demande comment tu fais le filtrage de ta zone de liste.
CSEtab est bien le nom de ta zone de liste?
pourrais-tu expliquer comment cela se comporte quand cela ne fonctionne pas?
si je comprends bien, cela fonctionne jusqu'au moment où tu réduis le nombre d'éléments dans la zone de liste, c'est bien cela?
je me demande comment tu fais le filtrage de ta zone de liste.
yg_be
Messages postés
23268
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2024
Ambassadeur
1 544
Modifié le 27 mai 2017 à 11:57
Modifié le 27 mai 2017 à 11:57
je pense avoir le même problème. quand je réduis le nombre d'éléments dans la listbox via un requery, je dois cliquer deux fois sur le bouton qui refait le select: il ne se passe rien la première fois.
cela semble bien se comporter si je fais deux fois la boucle select.
cela semble bien se comporter si je fais deux fois la boucle select.
yg_be
Messages postés
23268
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2024
1 544
Modifié le 27 mai 2017 à 12:08
Modifié le 27 mai 2017 à 12:08
probablement un bug dans Access. deux façons de le contourner, dans mon cas:
1) désélectionner tous les éléments de la zone de liste avant de changer le filtrage.
2) exécuter deux fois la boucle select
1) désélectionner tous les éléments de la zone de liste avant de changer le filtrage.
2) exécuter deux fois la boucle select
Juliaz
Messages postés
18
Date d'inscription
mardi 28 mars 2017
Statut
Membre
Dernière intervention
28 mai 2017
27 mai 2017 à 10:23
27 mai 2017 à 10:23
Bonjour yg_be,
CSEtab est bien le nom de ma zone de liste.
pourrais-tu expliquer comment cela se comporte quand cela ne fonctionne pas?
je remarque que c'est le premier choix effectué dans la liste déroulante qui détermine la sélection des éléments de la zone de liste.
Le premier choix opéré dans la liste déroulante marche toujours quelque soit le nombre d'éléments de la zone de liste.
C'est à partir du deuxième choix que j'ai un problème:Lorsque ce deuxième choix donne dans la zone de liste plus d'éléments que le premier choix , la sélection marche toujours.Par contre si ce deuxième donne moins d'éléments dans la zone de liste que le premier , rien n'est sélection dans ma zone de liste.
je me demande comment tu fais le filtrage de ta zone de liste.
J'ai une table tab1 avec deux champs: un champ A qui correspond avec les éléments de la liste déroulante et un autre B avec les éléments de la zone de liste.
Un élément A peut avoir plusieurs éléments B comme suit:
champ A champ B
a papa
a maman
b coucou
b lola
c pipo
J'ai alors construit une requête sélection avec tab1 où j'affiche les deux champs (champ A et champ B) de la table et je mets en critère du champ A [Formulaires]![nom formulaire]![champA liste déroulante] l'élèment sélection dans la liste déroulante.Celà permet ainsi par un [champB].Requery sur la liste déroulante d'avoir la zone de liste renseignée: c'est le principe des listes liées.
Merci encore pour ta contribution
CSEtab est bien le nom de ma zone de liste.
pourrais-tu expliquer comment cela se comporte quand cela ne fonctionne pas?
je remarque que c'est le premier choix effectué dans la liste déroulante qui détermine la sélection des éléments de la zone de liste.
Le premier choix opéré dans la liste déroulante marche toujours quelque soit le nombre d'éléments de la zone de liste.
C'est à partir du deuxième choix que j'ai un problème:Lorsque ce deuxième choix donne dans la zone de liste plus d'éléments que le premier choix , la sélection marche toujours.Par contre si ce deuxième donne moins d'éléments dans la zone de liste que le premier , rien n'est sélection dans ma zone de liste.
je me demande comment tu fais le filtrage de ta zone de liste.
J'ai une table tab1 avec deux champs: un champ A qui correspond avec les éléments de la liste déroulante et un autre B avec les éléments de la zone de liste.
Un élément A peut avoir plusieurs éléments B comme suit:
champ A champ B
a papa
a maman
b coucou
b lola
c pipo
J'ai alors construit une requête sélection avec tab1 où j'affiche les deux champs (champ A et champ B) de la table et je mets en critère du champ A [Formulaires]![nom formulaire]![champA liste déroulante] l'élèment sélection dans la liste déroulante.Celà permet ainsi par un [champB].Requery sur la liste déroulante d'avoir la zone de liste renseignée: c'est le principe des listes liées.
Merci encore pour ta contribution
yg_be
Messages postés
23268
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2024
1 544
Modifié le 27 mai 2017 à 11:29
Modifié le 27 mai 2017 à 11:29
Deux suggestions (au hasard, pas possible d'être plus précis sans ton fichier):
1) désélectionner tous les éléments de la zone de liste avant de changer le filtrage.
2) visualiser (debug.print ou msgbox) la valeur de Me.CSEtab.ListCount quand tu exécutes Commande362_Click
1) désélectionner tous les éléments de la zone de liste avant de changer le filtrage.
2) visualiser (debug.print ou msgbox) la valeur de Me.CSEtab.ListCount quand tu exécutes Commande362_Click
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Juliaz
Messages postés
18
Date d'inscription
mardi 28 mars 2017
Statut
Membre
Dernière intervention
28 mai 2017
27 mai 2017 à 15:04
27 mai 2017 à 15:04
Merci yg_be,
C'est exactement ce que j'ai, je dois cliquer deux fois sur le bouton pour qu'il refasse la sélection.
Pour exécuter deux fois la boucle select, il suffit juste de mettre le code deux fois ?
Merci encore
C'est exactement ce que j'ai, je dois cliquer deux fois sur le bouton pour qu'il refasse la sélection.
Pour exécuter deux fois la boucle select, il suffit juste de mettre le code deux fois ?
Merci encore
Juliaz
Messages postés
18
Date d'inscription
mardi 28 mars 2017
Statut
Membre
Dernière intervention
28 mai 2017
27 mai 2017 à 15:17
27 mai 2017 à 15:17
Cà semble fonctionner quand je mets deux fois le code.
Merci
Merci
yg_be
Messages postés
23268
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2024
1 544
27 mai 2017 à 15:44
27 mai 2017 à 15:44
je pense que c'est plus prudent de faire une boucle "deselect" avant le requery.
Pour éviter de perturber Access en supprimant de la liste des éléments sélectionnés, et provoquer d'autres anomalies..
Dim i As Long For i = 0 To Me.CSEtab.ListCount - 1 Me.CSEtab.Selected(i) = False Next i
Pour éviter de perturber Access en supprimant de la liste des éléments sélectionnés, et provoquer d'autres anomalies..
Juliaz
Messages postés
18
Date d'inscription
mardi 28 mars 2017
Statut
Membre
Dernière intervention
28 mai 2017
27 mai 2017 à 15:56
27 mai 2017 à 15:56
J'ai fait plusieurs tests mais c'es bizarre:
cela ne fonctionne pas toujours.
Je peux avoir votre exemple si possible.
Je suis désolée , je ne peux partager le mien car ce sont des données confidentielles .
Merci
cela ne fonctionne pas toujours.
Je peux avoir votre exemple si possible.
Je suis désolée , je ne peux partager le mien car ce sont des données confidentielles .
Merci
yg_be
Messages postés
23268
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2024
1 544
27 mai 2017 à 16:16
27 mai 2017 à 16:16
j'ai fait un exemple tout simple, avec une liste basée sur une table.
j'ai un bouton qui fait un simple requery.
un bouton qui fait la sélection.
un bouton qui fait la déselection.
quand j'ajoute des éléments dans la table, la sélection fonctionne bien après le requery.
quand il y a moins d'éléments dans ma table que dans la liste, la sélection ne fonctionne pas du premier coup après le requery.
mais en faisant d'abord la déselection, ou en faisant une double boucle dans la sélection, cela marche dans mon cas simple.
as-tu essayé de faire la déselection avant le requery?
j'ai un bouton qui fait un simple requery.
un bouton qui fait la sélection.
Private Sub Command4_Click() Dim i As Long For i = 0 To Me.List2.ListCount - 1 Me.List2.Selected(i) = True Next i End Sub
un bouton qui fait la déselection.
Private Sub Command6_Click() Dim i As Long For i = 0 To Me.List2.ListCount - 1 Me.List2.Selected(i) = False Next i End Sub
quand j'ajoute des éléments dans la table, la sélection fonctionne bien après le requery.
quand il y a moins d'éléments dans ma table que dans la liste, la sélection ne fonctionne pas du premier coup après le requery.
mais en faisant d'abord la déselection, ou en faisant une double boucle dans la sélection, cela marche dans mon cas simple.
Private Sub Command4_Click() Dim i As Long For i = 0 To Me.List2.ListCount - 1 Me.List2.Selected(i) = True Next i For i = 0 To Me.List2.ListCount - 1 Me.List2.Selected(i) = True Next i End Sub
as-tu essayé de faire la déselection avant le requery?
28 mai 2017 à 13:57