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

IHM Discussion :

[Form + Ss-Form] Filtrer enregistrement formulaire via filtres sur sous-formulaires


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Points : 15
    Points
    15
    Par défaut [Form + Ss-Form] Filtrer enregistrement formulaire via filtres sur sous-formulaires
    Bonjour,

    Dans Access 2003, je me heurte à un problème dans le cadre de la recherche "filtrer par formulaire" :

    - Je dispose d'un formulaire principal unique basé sur une table.
    - Dans ce formulaire j'ai inclus des sous-formulaires continus, basés sur des requêtes, qui listent les enregistrements associés à l'enregistrement affiché dans le formulaire principal : en l'occurence, par exemple, la liste des langues parlées par une personne.

    Je souhaiterai pouvoir filtrer par formulaire afin de rechercher par exemple les personnes parlant l'anglais.
    En effet, lorsque je clique sur "filtrer par formulaire", j'ai bien la possibilité d'entrer les critères dans les sous-formulaires mais lorsque j'applique le filtre il ne me sélectionne pas les enregistrements correspondants dans le formulaire principal (il m'affiche tous les enregistrements des "personnes", y compris celle n'ayant pas "Anglais", mais pas les langues autres que l'anglais parlées par les personnes).

    Y'aurait-il une solution ?

    J'ai pensé à du code VBA permettant par exemple de filtrer le jeu d'enregistrement affiché par le formuliare principal, en se basant sur l'"intersection"des résultats des filtre appliqués sur chaque sous-formulaire...
    Je ne sais pas si je suis clair....et les filtres en VBA je ne maîtrise pas du tout...

    Je vous remercie par avance pour toute aide : piste de réflexion, éléments de code, etc.

  2. #2
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Bonjour,

    Je ne comprends pas trop ce que tu veux faire...
    Tu as mis ta liste de choix dans ton sous-formulaire, pourquoi ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    J'ai opté pour le sous formulaire car par principe on ne peut savoir combien de langues parle quelqu'un.

    En fait j'ai 3 tables :
    1/ "Personnes"
    2/ "Langues" (liste de langues)
    3/ une table de jonction ayant pour clé primaire l'association des clé primaires des tables 1 et 2 (et assurant ainsi une relation n<-->n entre les 2 autre tables)

    Le formulaire principal se base sur la table 1, et le sous-formulaire sur une requête associant les tables 2 et 3. Le lien se fait entre la table 1 et 3 sur la clé commune (identifiant de la personne) et permet donc d'avoir la liste des langues parlées par chaque personne.

    J'espère t'avoir éclairé un peu plus sur mon problème

  4. #4
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Et ta requête ?

    c'est un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Personnes.Nom, Jonction.fNumLangue
    FROM Personnes INNER JOIN Jonction ON NumPersonnes = fNumPersonnes;
    C'est ça ?

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    Et avec les tutos sur les formulaires de recherche multis critères, ça ne te conviendrai pas ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    @ Super Steph :

    En langage SQL, et en reprenant les termes de ta ligne d'exemple la requête sur laquelle se fonde le sous-formulaire donne :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT Langues.Libellé, Jonction.fNom, Jonction.fNumLangue FROM Langues INNER JOIN Jonction ON Langues.NumLangue = Jonction.fNumLangue;
    (j'imagine que le "f" signifie "foreign" pour "clé étrangère" : est-ce bien cela ?)

    J'ai bâti le lien entre l'enregistrement du formulaire principal principal (i.e. la "fiche personne") et le sous formulaire via l'assistant formulaire sur la correspondance entre les champs NumNom et f.NumNom (qui se retrouvent également dans les paramètres "Champs pères" et "Champs fils" de la fenêtre de propriétés du sous-formulaire (onglet "Données"))


    @ Herman :

    J'ai effectivement regardé ces tutoriels mais l'inconvénient est qu'il faut définir à l'avance sur quels champ se portera la recherche et quels type de recherche est souhaitée (contient, égal à, etc.)
    C'est justement ce que j'apprécie avec la fonction "filtrer par formulaire : c'est très souple : on peut rechercher sur tous les contrôles, avec des critères variables (utilisation de "jokers" entre autre, etc.)

    Peut-être me trompe-je et que ces formulaires sont plus puissants que je ne le pense... et peut-être est-ce également le seul moyen de satisfaire le besoin que j'exprime...

    Merci en tout cas à vous de vous pencher sur mon cas.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Ne recevant plus de réponse je me demande si je me suis mal exprimé.

    En effet, mon besoin me semble être assez général et je ne pense pas être le seul à l'avoir.

    Je vais le reformuler plus clairement et avec de mots français (et pas Access )

    Je gère des fiches de personnes qui parlent chacune entre zéro et n langues étrangères.

    Je souhaiterai pouvoir trouver les personnes qui parlent une langue donnée (puis par exetension, une combinaison de langues : anglais ET espagnol, allemand OU zoulou)

    Je vous remercie par avance si vous avez une petite idée...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Bon ben finalement, j'ai trouvé une solution un peu différente
    Bonjour à tous,

    Finalement, j'ai trouivé une solution qui répond à mon besoin même si elle ne me satisfait pas en terme d'ergonomie utilisateur.

    Celle ci-se base sur un formulaire de recherche générique, qui lui même utilise une requête à 2 niveaux comme source de données / de recherche.

    Plus d'info sur ce post : http://www.3stone.be/access/thread.p...7&fid=1&cat=02

    A plus.

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

Discussions similaires

  1. [AC-2003] filtrer un sous-formulaire depuis un autre sous-formulaire
    Par dr_feelgood dans le forum IHM
    Réponses: 3
    Dernier message: 09/03/2012, 19h29
  2. [AC-2010] filtre sur sous formulaire comment faire ?
    Par sebinator dans le forum IHM
    Réponses: 8
    Dernier message: 23/01/2012, 07h39
  3. filtre sur sous formulaire
    Par Ludwik dans le forum IHM
    Réponses: 0
    Dernier message: 05/10/2009, 14h00
  4. filtre sur sous formulaire
    Par Ludwik dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/08/2008, 16h24
  5. Filtre sur sous formulaire
    Par willytito dans le forum IHM
    Réponses: 3
    Dernier message: 14/04/2008, 14h09

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