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 :

Liste déroulante , problème sélection champ [AC-2010]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Support projet logistique
    Inscrit en
    Novembre 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Support projet logistique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 27
    Points : 21
    Points
    21
    Par défaut Liste déroulante , problème sélection champ
    Bonjour,

    je viens de créer une liste déroulante contenant plusieurs champs, exemple : A / A1 / A2 / B / B1 / B2 / etc...
    Mon problème est, si je souhaite afficher seulement le champ A, mon filtre affiche tous les champs qui contiennent la suite logique du caractère A, c'est à dire A1 et A2, alors que je veux seulement afficher le champ A

    Sur un exemple comme ceci, je comprends que cela semble bénin, mais je bosse sur des incoterm, donc la donne change pas mal selon le choix.

    Y-a-t'il une astuce pour filtrer uniquement la valeur saisie ? J'ai pas mal cherché sur le net, mais rien trouvé...

    merci d'avance !!

  2. #2
    Modérateur

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

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

    Si je comprends bien, tu as dans ta liste les valeurs A, A1, A2 et tu veux que quand tu tapes A, seulement A apparaisse c'est bien cela ?

    Si, oui, pourquoi utiliser une liste déroulante ?

    Tu ne souhaites pas pouvoir choisir entre A, A1 et A2 ?

    Peut-être pourrais-tu poster une copie d'écran.

    Sinon, à priori, pour limiter l'affichage dans une liste déroulante, il faut changer sa source de données.
    Quelque chose comme :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select [TaTable].[TonChamp] from [TaTable] where [TaTable].[TonChamp]=[Forms]![TonForm]![TonChamp]

    Cela n'affichera que les enregistrements exactement identique à la sélection.
    On peut utiliser l'événement OnChange du contrôle pour déclencher la mise à jour avec du code comme :

    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Support projet logistique
    Inscrit en
    Novembre 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Support projet logistique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    merci pour le retour. Voici un imprim écran de la situation.

    Nom : Liste déroulante 2.png
Affichages : 676
Taille : 16,5 Ko

    Je me suis mal exprimer. Dans l'imprim écran, si je souhaite afficher que le "DAP Consignee", le filtre va aussi afficher en plus de ce champ "DAP Consignee", le champ" DAP Consignee's Facility". Le filtre ne fait pas la différence entre les deux.

    Sur l'imprim, seulement le champ en noir est sélectionné (DAP Consignee), mais j'en aie deux qui ressortent dans le résultat (DAP Consignee ET DAP Consigne's facility).

    Est-ce plus clair ?

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 912
    Points : 4 811
    Points
    4 811
    Par défaut
    Bonjour,
    Vraisemblablement, quand tu sélectionnes dans la liste déroulante la valeur 'DAP Consignee' , ta procédure de recherche utilise une requete SQL
    contenant un LIKE 'DAP Consignee*' dans laquelle * est ajouté automatiquement au critère saisi.
    Il faudrait retirer ce car. *
    Ainsi les valeurs trouvées correspondraient exactement au critère saisi.
    A l'utilisateur de saisir des caractères joker s'il le désire.

    Cdlt

  5. #5
    Membre à l'essai
    Homme Profil pro
    Support projet logistique
    Inscrit en
    Novembre 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Support projet logistique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bonjour Micniv,

    je viens de regarder dans la requête en question le code SQL, voici ce qui s'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Coût_leg1.Incoterm
    FROM Coût_leg1
    GROUP BY Coût_leg1.Incoterm;
    c'est très bizarre cette histoire de filtre

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 912
    Points : 4 811
    Points
    4 811
    Par défaut
    Ce que tu présente est la requete qui alimente la liste déroulante.
    Je te suggérais d'examiner le traitement qui est exécuté après la sélection, qui se déclenche très certainement à partir de l'evenment _AfterUpdate() de la liste déroulante

    Cdlt

  7. #7
    Modérateur

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

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

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Coût_leg1.Incoterm
    FROM Coût_leg1
    GROUP BY Coût_leg1.Incoterm
    where Coût_leg1.Incoterm like [Forms]![TonForm]![TonChamp] & "*"

    ou

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Coût_leg1.Incoterm
    FROM Coût_leg1
    GROUP BY Coût_leg1.Incoterm
    where Coût_leg1.Incoterm like """" & [Forms]![TonForm]![TaListe] & "*"""

    dans SurChangement de [TaListe]

    Va réduire la sélection au fur et à mesure de la frappe.

    A+

  8. #8
    Membre à l'essai
    Homme Profil pro
    Support projet logistique
    Inscrit en
    Novembre 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Support projet logistique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    merci pour vos réponses,
    je viens d’essayer le code que Marot_r m'a proposé, mais j'obtiens cela :

    Nom : Liste_SQL.png
Affichages : 587
Taille : 23,4 Ko

    pourtant je tape exactement (dans les deux exemples) ce qui est écrit dans le générateur de requête. Dans le doute, et avec quelque recherches, j'ai enlevé un espace entre les "SELECT" / "FROM" / "GROUP BY" et les termes qui les suivent, mais même problème ...

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Bonjour,
    il y a des différences entre les 2 codes :
    ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where Coût_leg3.incoterm like Forms]![F_leg3]![ListeIncoterm] & "*"
    proposé par marot_r
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where Coût_leg1.Incoterm like """" & Forms]![TonForm]![TaListe] & "*"""
    essaie d'ajouter ce qui manque.
    pourtant je tape exactement (dans les deux exemples) ce qui est écrit dans le générateur de requête
    le générateur de requêtes ne sait pas forcément que tu traites du String donc il ne va pas ajouter automatiquement les quotes manquantes.
    j'ai enlevé un espace entre les "SELECT" / "FROM" / "GROUP BY" et les termes qui les suivent, mais même problème
    mais il en faut au moins un entre chaque terme.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Support projet logistique
    Inscrit en
    Novembre 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Support projet logistique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    même résultat avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Coût_leg4.Incoterm
    FROM Coût_leg4
    GROUP BY Coût_leg4.Incoterm
    WHERE Coût_leg4.Incoterm LIKE """" & [Forms]![F_leg4]![ListeIncoterm] & "*"""
    Je crois que cela vient de l'ajout du Where avec la suite du code. Mais suite à vos conseils, je ne vois pas ce qui peut poser problème.

  11. #11
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour et désolé.

    J'écris rarement le code SQL moi-même et j'ai sans doute inversé l'ordre des clauses.

    Et en plus c'est une requête de regroupement donc il n'y a pas de clause Where mais une clause Having.

    Le plus simple est de passer par l'éditeur de requête.
    Tu crées ta requête de regroupement puis tu mets Où dans la colonne qui va te servir de sélection.
    Après tu mets le critère de sélection.
    Ça évite de se casser la tête avec la syntaxe du SQL.

    A+

  12. #12
    Membre à l'essai
    Homme Profil pro
    Support projet logistique
    Inscrit en
    Novembre 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Support projet logistique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Dans ce cas, je demande une dernière fois votre aide pour cette démarche.
    Je n'ai jamais fait requête avec l'opération "Où", du coup je ne comprends pas vraiment la manipulation.

    ci-dessous, voici ma requête dans l'état actuel des choses.
    Nom : Requête_où.png
Affichages : 573
Taille : 6,3 Ko

    Je copie le code SQL et je colle dans le critère "Contenu" de l'onglet "Données" de ma liste déroulante.
    J'ai faits un tour sur le web pour l'opération "où" mais

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Tu dois coller la clause :
    LIKE """" & [Forms]![F_leg4]![ListeIncoterm] & "*"""
    dans la ligne Critères :

    Pièce jointe 244158

  14. #14
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    On y est presque.

    Il faut que tu mettes une 2ième colonne avec le champ de Coût_leg4.Incoterm et tu va mettre "Où" sur la ligne opération et t'assurer que la colonne est décochée.
    Dans la ligne critère tu vas mettre LIKE """" & [Forms]![F_leg4]![ListeIncoterm] & "*"""

    Il se peut que Access décide de combiner les 2 colonnes.

    Et enfin tu définir la source de ta liste comme étant ta requête de regroupement.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Support projet logistique
    Inscrit en
    Novembre 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Support projet logistique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    suite à votre aide, j'ai des nouvelles :
    - la requête fonctionne avec la fonctionnalité "Où", super !
    - par contre, je n'ai plus rien qui s'affiche quand j'exécute la requête

    Dans la requête de regroupement classique, j'ai : A / A1 / A2 / B / B1 / B1. Avec le filtre pour avoir seulement le champ souhaité, je n'ai plus rien qui s'affiche.


    Par pur hasard (et mea Culpa), dans la feuille de propriété de mon formulaire, "Données", "Filtre", je viens de voir le fameux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Incoterm] like "DAP Consignee*"
    qui me pourrit le vie. Si je supprime "*" manuellement, j'ai seulement le champs voulu. Par contre, je dois le faire à chaque recherche.

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    Bonjour,
    oui, en relisant la discussion depuis le début j'ai constaté que le LIKE te posait un problème. Il faut donc remplacer LIKE par = à la ligne Critères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     = [Forms]![F_leg3]![ListeIncoterm]

  17. #17
    Membre à l'essai
    Homme Profil pro
    Support projet logistique
    Inscrit en
    Novembre 2016
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Support projet logistique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2016
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    je viens de faire la modification du code dans la requête, mais j'ai toujours le même problème.
    Pour ne plus avoir ce problème, le plus simple est de modifier la donnée source de ce champ en question afin que le "Like ....."*"" ne s'applique pas. C'est une solution pas des propres j'avoue !

    Merci pour votre aide

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

Discussions similaires

  1. type de champ: liste déroulante (problème ajout données)
    Par aba_tarn dans le forum VBA Access
    Réponses: 0
    Dernier message: 26/07/2007, 14h25
  2. Réponses: 10
    Dernier message: 27/03/2007, 12h21
  3. Liste déroulante remplie un champs texte
    Par tukutt dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/02/2007, 15h52
  4. Liaison entre liste déroulante et un champs
    Par lolo_bob2 dans le forum Access
    Réponses: 4
    Dernier message: 19/04/2006, 11h54
  5. [MySQL] Liste déroulante contenant deux champs d'une requete
    Par budiste dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/10/2005, 11h21

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