Bonjour,
J'utilise une listview que je remplie avec un recordset qui est le résultat d'une requête sur une base access.
Je me trouve maintenant avec une listview remplie de plusieurs colonnes. Certaines colonnes correspondent à des champs numerique et d'autres à des champs texte.
Je souhaite pouvoir filtrer sur 3 champs. Je pensais au départ, implémenter ma première requete en ajouter les critères : "Where Champ = '" valeur "' etc..."
Je souhaite développer quelque chose de dynamique, que je pourrais exploiter sur différents formulaires.
Au départ, j'ai ajouté mes 3 combobox au dessus de la listview, et je viens remplir ces combo avec les données de mes trois colonnes à filtrer.
J'ai ajouté mes combobox à un module de classe, de cette manière, j'ai un seul événement "On Change" pour les 3.
Le nom des combo est formaté de cette manière : "FiltreNomDuChampBase" exemple : "FiltreCodepostal" correspond au nom de champ de ma base "Codepostal"
Grace au nom de la liste, je récupère le nom du champ. Il me faut maintenant pouvoir identifier le type de données pour ce champ. Si c'est du texte je dois ajouter '' dans les critères de filtre de ma requete, alors que si c'est du numérique je n'ajoute rien. Exemple : " Where codepostal = 37000" ou encore "Where prenom = 'jojo'"
Avant d'aller plus loin, je me dis qu'il y a peut être un moyen plus simple de filtrer ma listview et que peut être j'ignore cette méthode...
Sinon, j'avais pensé ajouter au nom de la combobox, le type de donnée par exemple : CNumFiltreCodepostal ou CTxtFiltrePrenom
De cette manière, avec un Split, je peux découper le nom de la liste sur "Filtre" et retrouver le type de donnée et le nom du champ...
Bref je suis perdu et j'ai besoin de votre avis...![]()
Partager