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

Access Discussion :

Appliquer un filtre à la source d'un contrôle


Sujet :

Access

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut Appliquer un filtre à la source d'un contrôle
    Bonjour.

    J'ai un formulaire représentant un questionnaire.
    Les données qui y sont présentées sont les réponses d'une personne aux différentes questions.

    Ces informations sont modélisées sous la forme d'une association du type : Table_Items -> Table_Réponse <- Table_interviewés

    Donc j'aimerais, pour chaque contrôle, affecté comme source l'enregistrement d'un requête en fonction d'un paramètre (ou d'un filtre). C'est à dire que j'ai une requête qui récupére toutes les réponses d'une personne aux différents items, et j'aimerais que le control_1 ait comme source : résultat de ma requête quand Id_Item=X.

    Est-ce faisable ? Je n'ai pas trouvé comment faire, ni en passant par un recordSet, ni par une requête paramètrée.
    Si quelqu'un a une idée, merci de m'en faire profiter ...

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Ce fonctionnement n'est possible qu'avec des controles zones liste (combo ou pas).

    Est-ce cela que tu souhaites faire ?

    J'ai sommeil tout d'un coup...
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Ha, ben non.
    Mes controls sont des textBox, et groupes d'options...

    Et je ne suis pas sûr d'y gagner grand chose à tout passer en zone de liste...(ni même si c'est possible, je n'ai jamais utilisé de zones liste...)

    Qu'ai-je comme solution ?

    1) Créer autant de requête que j'ai de contrôles ?
    J'imagine que dans ce cas-là, les boutons par défaut pour faire défiler les enregistrements vont perdre la boule, non ?

    2) La solution pourait être de passer par une table temporaire qui regrouperait tous mes items (en colonne) et qui me servirait de source...
    Et de baser mes insertions et mises à jour selon le contenu de cette table...
    Ca implique de créer une sacrée grande table en fonction des différents enregistrements de ma table Item...
    Est-ce jouable, trop compliqué ?

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    ça fait 5 fois que je relis ton premier post, et bon ce n'est toujours pas très clair pour moi.

    je ne vais donc retenir que :
    C'est à dire que j'ai une requête qui récupére toutes les réponses d'une personne aux différents items, et j'aimerais que le control_1 ait comme source : résultat de ma requête quand Id_Item=X.
    Pourquoi ne pas faire une zone de liste d'une seule ligne (ça ressemblera à un txtBox) qui a un rowsource fonction d'un autre contrôle ? comme ça avec un .Requery tu obtiendras ton info.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Je vais essayer d'être plus clair.
    J'ai une association "Réponse" dans ma base qui contient 3 champs: "Id_Item", "Id_Personne", "Réponse".
    Les 2 premiers champs sont donc des clé etrangères, et "Réponse" est donc la réponse de la personne X à la question Y.

    Mon formulaire regroupe donc l'ensemble des différents Items, et doit permettre de saisir ou modifier les réponses d'une personne à chaque item.
    A savoir que la plupart des items sont de type "Oui/Non".

    Citation Envoyé par cafeine
    Pourquoi ne pas faire une zone de liste d'une seule ligne (ça ressemblera à un txtBox) qui a un rowsource fonction d'un autre contrôle ?
    Ca ne me semble pas bête du tout.
    En fait, je pourrais faire transiter l'information qui m'intéresse par une zone de liste d'une seule ligne.
    Par exemple, je créé une liste par item ayant comme source ma requête paramétrée (vu qu'apparemment c'est possible), et je mets cette liste en source de mon groupe d'option.
    C'est jouable, ça ?
    C'est à quelque chose comme ça que tu pensais ?

  6. #6
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Ben oui
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    J'essaie tout de suite, et je vous dit !!

    (enfin, il me faut quand même le temps de voir comment fonctinne les listes...)

    Merci, à tout'.

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Au début je pensais avoir compris mais je me mets à douter sérieusement en lisant ton 2me post...

    J'ai pourtant des notions de hiéroglyphes ainsi que de langage utilisateur.

    Tu m'as l'air d'être hyper spécialisé dans la conception orienté UG.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Je suis si incompréhensible que ça ??!!!

    Citation Envoyé par loufab
    Tu m'as l'air d'être hyper spécialisé dans la conception orienté UG.
    heuuu, comprends pas...

    Pour en revenir à nos (enfin mes..) moutons, j'ai donc : une liste liée à une requête, et un groupe d'option lié à ma liste. Le tout fonctionne correctement.

    Pour ma liste, j'ai écrit une requête dans la propriété "Contenu". C'est quoi la différence avec la propriété "Source contrôle" ?
    Comment puis-je utiliser une requête paramétré là-dedans ?

  10. #10
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par marchand_de_sable
    Pour ma liste, j'ai écrit une requête dans la propriété "Contenu". C'est quoi la différence avec la propriété "Source contrôle" ?
    Comment puis-je utiliser une requête paramétré là-dedans ?
    Dans contenu tu mets ton SQL avec un Where qui dépend d'un controle.
    un simple .Requery de ta liste suffira à le mettre à jour.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  11. #11
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Re,

    Citation Envoyé par cafeine
    Dans contenu tu mets ton SQL avec un Where qui dépend d'un controle.
    Citation Envoyé par marchand_de_sable
    j'ai donc : une liste liée à une requête, et un groupe d'option lié à ma liste.
    Je crois que je faisait une confusion entre le "contrôle dans la close WHERE" et le "groupe d'otpions lié à ma liste".
    En fait il s'agit de 2 contrôles différents (dis-moi si je me trompe) : l'un servant à définir un paramètre dans la source de ma liste, et l'autre (le groupe d'options) a pour source la liste.
    Ai-je bien tout compris cette fois-ci ?

    Quoi qu'il en soit, il me reste un problème : je ne peux pas changer la valeur de mon groupe d'option (en mode formulaire). J'ai une erreur : "impossible de modifier; lié au contenu de Liste_3"
    Donc toute mise à jour est impossible
    Y a-t-il moyen de remédier à cela ?

  12. #12
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Du coup j'ai fait un test ... et ça marche

    un form avec une TxtBox

    et une lstBox dont la RowSource est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT First(Table.Champ) AS Expr FROM Table WHERE (((Table.Champ) Like "*" & [Formulaires]![NomDuForm]![txtBox] & "*"));
    et un code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Private Sub txtBox_BeforeUpdate(Cancel As Integer)
     
    Me.lstBox.Requery
     
    End Sub
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  13. #13
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Désolé, mais ça ne marche pas...

    En fait je ne suis pas sûr qu'on se soit bien compris sur ce que je veux faire.
    En tout cas, merci pour les tuyaux sur les listes, du coup j'ai essayé de les manipuler dans tous les sens, et je pense que ça va me servir bientôt.

    Par contre, pour mon problème, j'ai revu mes ambitions à la baisse, et j'ai voulu mettre des requêtes en source de mes contrôles, mais ça ne fonctionne pas si les requêtes ne sont pas préalablement enregistrées.
    J'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SELECT monChamp FROM MaTable WHERE MaClé=X
    en source d'un contrôle, et j'ai une erreur "Cette expression comporte une sous-requête erronée...".
    J'ai tenté de mettre MaTable en source du formulaire, juste pour voir...ça ne change rien.

    C'est un problème de syntaxe, ou ce n'est tout bonnement pas possible ?

  14. #14
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Rectification : ça ne fonctionne pas non plus si la requête est enregistrée...

  15. #15
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Non, non, non

    Tu ne peux pas mettre en source d'un controle
    =Table
    =SELECT ....

    Tu peux en revanche mettre en RowSource d'une liste
    SELECT ...

    Ou d'une TextBox
    =DLookUp()
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  16. #16
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Ok, merci

    Cette fois, je crois que j'ai toutes les infos pour avancer (même si mon problème s'avère plus compliqué qe prévu )

    Citation Envoyé par loufab
    Tu m'as l'air d'être hyper spécialisé dans la conception orienté UG.
    Toujours pas compris...
    J'ai senti comme des sarcasmes là-dessous.

    Enfin, encor merci, je sais que ça été laborieux, mais j'ai encor découvert plein de trucs sur Access !!!

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

Discussions similaires

  1. [formulaire]appliquer un filtre en fonction d'une liste
    Par hansaplast dans le forum Access
    Réponses: 1
    Dernier message: 24/07/2006, 12h31
  2. Réponses: 1
    Dernier message: 07/04/2006, 09h36
  3. [Lucene] appliquer un filtre
    Par maximus001ma dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 08/02/2006, 16h45
  4. Appliquer un filtre à un TshellListView
    Par Phébus dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/10/2005, 08h09
  5. Appliquer un filtre depuis liste déroulante
    Par samlepiratepaddy dans le forum Access
    Réponses: 6
    Dernier message: 20/10/2005, 07h43

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