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

VB 6 et antérieur Discussion :

[VB6] Filtrer les éléments dans une listview


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut [VB6] Filtrer les éléments dans une listview
    bonjour à tous

    de façon similaire à un RecordSet et la fonction Filter, j'aimerai savoir si on peut appliquer un filtre sur les éléments d'une liste. Et si oui, comment procéder à partir du moment où on a la critère du filtre à effectuer (et cela peu importe la colonne de la listview sur laquelle je veux effectuer ce filtre) ?

    Autre solution envisagée (je ne sais pas si cela peut se faire) : j'utilise ma fonction filter mais je voudrais garder en mémoire tous les filtres successifs sur mon Recordset puis je l'affiche dans ma listview

    Merci à vous

  2. #2
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    j 'ai trouvé comment faire : il suffit d'allouer en permanence un RecordSet à une requête et effectuer les filtres successifs sur ce Recordset.

    sujet

  3. #3
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    je rouvre ce topic car j'ai de nouveau un souci lié à ce problème.

    j'ai un recordset ouvert en permanence et j'effectue des filtres dessus et je voudrais pouvoir "garder" mon filtre précédent avant d'appliquer un nouveau. ça ne marche pas puisque lorsque j'applique le second filtre, il le fait sur le recordset initial au lieu de le faire sur celui avec un filtre.

    Je pense que le problème vient d'un souci de "sauvegarde" et mon recordset intermédiaire est écrasé en quelque sort.

    Comment puis-je résoudre ce problème ?

    Les filtres peuvent être effectués sur deux critères différents mais comment garder en mémoire le premier filtre ? lorsqu'on effectue un second (et de manière général, n filtres successifs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MonRecordSet.Filter = "MonAttribut LIKE '" & MonFiltre & "'"
    ' comment garder ce filtre de façon à ce que lorsque je fasse ceci :'
    MonRecordSet.Filter = "MonSecondAttribut LIKE '" & MonSecondFiltre & "'"
    'il le fasse sur le recordset issu du premier filtre ? '


    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Moi j'essaierai çà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonRecordSet.Filter = "MonAttribut LIKE '" & MonFiltre & "' Or  MonSecondAttribut LIKE '" & MonSecondFiltre & "'"
    mais je n'ai jamais utilisé
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Pourquoi ne pas creer un recordset secondaire avec une requete sql bien sentie ? Il ne resterait alors qu'a gérer un string et lui ajoutant les filtres upplémentaires

  6. #6
    Membre confirmé Avatar de jfdmagic
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 181
    Par défaut
    Au début, je pensais partir comme ça en ajoutant les filtres dans ma clause WHERE de ma requête.

    il se trouve que je voulais faire une recherche avec uniquement un champ voire 3 ou 4 et je trouvais que c'était plus intuitif.

    Il y a eu des changements et maintenant, j'ai 14 champs (avec toutes les combinaisons possibles au niveau des clauses soit je crois 14!) >>> c'est sur que je n'ai qu'à faire qu'un formulaire de recherche et à gérer une seule et unique requête SQL à la fin

    Ne trouvant pas de solution, j'ai commencé à partir sur cette piste et je crois que finalement, c'est ce qu'il a de mieux.

    juste une précision pour la construction de mon string SQL, tous mes champs ne seront pas renseignés et je ne peux pas prendre en compte des champs non renseignés : il faut donc que je mette des astérisques pour être sûr qu'il ne prendra la restriction Champ = NULL

    Merci par avance

    Jfdmagic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment récuperer un élément dans une listview lors d'une sélection
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/04/2007, 02h37
  2. [VB6]Gérer les espaces dans une command FTP
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 24/07/2006, 21h28
  3. [VB6]"Figer les volets" dans une feuille Excel
    Par maillardd dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 01/02/2006, 15h41
  4. Lister les processus et les PID dans une listview .
    Par maxoudu328 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 16/10/2005, 16h03
  5. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 09h37

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