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 :

Utiliser une liste multicritère d'un formulaire dans les critères d'une requete


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Utiliser une liste multicritère d'un formulaire dans les critères d'une requete
    Bonjour,

    J'ai crée dans un formulaire une liste qui prend ses valeurs dans une table.
    Je cherche a créer une requete dans laquelle le critere serait les differentes selections de l'utilisateur dans cette liste.

    J'ai déja tenté dans la requete le critere : =[Formulare]![Formular1]![Liste49] (Access en Allemand) .

    Cela ne fonctionne malheureusment pas lorsque plusieurs donées sont séléctionées dans la liste.

    Quelqu'un aurait-il une solution ?

    Merci beaucoup !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Tu ne peux pas le faire directement.

    Il y a ici une série de tutoriels sur le sujet.

    menu Formulaires de recherche
    https://access.developpez.com/cours/...#formrecherche

    En gros il faut construire un In()avec la liste des différentes valeurs.

    Une autre possibilité est de ne pas utiliser une liste mais un sous-formulaire basé sur une table ou tu "coches" les éléments voulus et tu faits une jointure sur cette table.

    La solution avec le In() est moins contraignante même si elle demande un peu plus de programmation.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour ,

    Merci beaucoup pour ta réponse.
    Je n'ai malheureusement que très peu de connaissances en VBA, et n'ai jamais utilisé la fonction In()-

    Pourrais -tu me détailler un peu plus la seconde option avec les sous-formulaires ?

    Merci,

    Perrine

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Tu peux le faire de plusieurs façons.

    • Modifier ta table pour ajouter un champ oui/non (Booléen) qui va te servir à cocher les éléments qui t'intéressent.
      Après tu fais un sous-formulaire (à la place de ta liste) qui affiche ta table d'élément et l'utilisateur coche ou ne coche pas ce qui l'intéresse.
      Ensuite tu as juste à faire une jointure avec cette table et sélectionner ceux pour lequel le champ booléen est vrai.
      Attention comme c'est dans une table, les choix restes et sont éventuellement partagés par d'autre.
      Pour le "reste", il suffit au chargement du formulaire de réinitialiser les choix, pour le partage c'est un vrai problème si plusieurs personnes demandent la sélection en même temps. Ils vont se "marcher sur les pieds" et cela va être la confusion totale.
    • L'autre solution est de faire une table de sélection des éléments qui intéressent, l'utilisateur doit choisir dans la liste ce qu'il veut voir.
      Quelque chose comme :

      tblChoixElement
      ClefChoix (numero auto)
      ClefElement (ou CodeElement, ou Element)
      CodeUtilisateur (on peut récupérer le code de l'utilisateur Windows avec l'instruction Environ$("UserName"). Attention elle ne fonctionne pas diretement dans une requête. Il faut faire un bout de VBA pour que cela fonctionne.

      C'est un peu comme commande de produits dans un catalogue.
      Ensuite tu as juste à faire une jointure avec cette table et sélectionner ceux qui sont dans tblChoixElement et qui sont ceux de l'utilisateur.
    • On peut combiner les 2 solutions : faire une tblChoixElement avec champ booléen et y copier les choix possibles au chargement du formulaire permettant ensuite à l'utilisateur de cocher au lieux de faire son "épicerie".


    Comme tu vois c'est pas mal de soucis aussi. La solution par VBA me semble préférable car beaucoup moins contraignante.
    Les tutoriels sont bine fait et te guident pas à pas dans la solution.

    Bon l'autre solution c'est DE NE PAS offrir de choix multiples :-).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/12/2012, 22h26
  2. [1.x] Formulaire : restreindre les choix d'une liste déroulante
    Par Invité dans le forum Symfony
    Réponses: 1
    Dernier message: 25/02/2012, 08h37
  3. Recherche dans les éléments d'une liste
    Par adelotti dans le forum VBA Word
    Réponses: 12
    Dernier message: 19/06/2008, 16h52
  4. Réponses: 2
    Dernier message: 20/10/2007, 02h24
  5. Couleur dans les options d'une liste
    Par psgman113 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/04/2007, 21h54

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