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 :

Cacher des éléments dans une zone de liste


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut Cacher des éléments dans une zone de liste
    Dans mon fomulaire, j'aimerais avoir, pour un champ, une zone de liste à la place d'une zone de texte.

    En mettant mon_champ comme "Source controle" dans les propriétés de ma liste
    Et en mettant ce code SQL dans "Contenu"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT mon_champ FROM ma_table;
    Ma zone de liste séléctionne automatiquement le mon_champ qui correspond à sa ligne du formulaire, mais les autres apparaissent quand même.

    Il faudrait donc maintenant que je puisse cacher les autres éléments de la liste.

    Est-ce possible?

    Merci

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    Il faudrait donc maintenant que je puisse cacher les autres éléments de la liste.
    Pas tout compris........ici tu utilise une Zone de liste ou une Zone de liste déroulante
    Car si tu utilise une zone de liste déroulante, dès que tu as choisi un élément, la liste se ferme et ne reste plus que visible l'élément sélectionné.
    En espérant comprendre ton problème
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Points : 74
    Points
    74
    Par défaut
    je suis pas sur d'avoir tout compris , mais d'aprés se que j'ai compris voila se que je te propose:

    regarde peut être les propriétés de ta zone de liste:
    ils faut que tu mette le nombre de colonne de ta requête et aprés dans ta largeur de collone la colonne que tu veux afficher tu met une taille et pour le reste tu met 0cm.

    exemple:
    tu as 4 colonnes et tu veux afficher que la troisiéme, tu vas mettre :
    0cm;0cm;5cm;0cm

    désolé si j'ai mal compris et que se n'étais pas sa

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    En fait, je voudrais une zone de liste dans mon formulaire (dans le détail du formulaire, pas en en-tête) qui, selon la ligne du formulaire, n'affiche pas les même éléments qu'une autre ligne.

    Le problème étant que pour l'instant, pour chaque ligne du formulaire, la liste contient à chaque fois tous les éléments de mon_champ.

    Le but d'une zone de liste étant d'avoir, par la suite, un regroupement d'élements, ce que je ne peux faire avec une simple zone de texte.

  5. #5
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Alors là, vraiment je n'ai rien compris
    Ca doit être la chaleur
    selon la ligne du formulaire, n'affiche pas les même éléments qu'une autre ligne.
    Je pense que par ligne du formulaire, tu parle d'enregistrement
    A moins que tu parle de ligne parce que ton formulaire est en mode continu

    Peut être une petite recopie écran, nous faciliterais la compréhension du problème..en tout cas pour moi
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    utilise une zone de liste déroulante tout simplement. de toute façon, un champ ne peut contenir qu'une seule et unique valeur

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    J'utilise effectivement un formulaire en mode continu.

    On va dire par exemple que j'ai 2 champs "marque" et "couleur"

    mon formulaire donne:

    marque couleur
    ferrari rouge
    ferrari gris
    ferrari jaune
    porsche gris
    bmw gris

    Je voudrais avoir pour le champ "couleur", à la place d'une zone de texte, une zone de liste (déroulante ou pas, je pense que ça ne change pas le pb)

    Le but de la liste est de pouvoir regrouper en une seule ligne les différentes couleurs d'une même marque, mais pas celles des autres marques.

    Mon formulaire donnerait (avec entre parenthèses les éléments visibles dans la zone de liste) :

    marque couleur
    ferrari (rouge; gris; jaune)
    porsche (gris)
    bmw (gris)

  8. #8
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Ha, c'est mieux
    Donc en clair tu veux pouvoir afficher dans ta Zone de liste déroulante, les couleurs disponibles en fonction de la marque de la voiture
    Regarde ici, un exemple qui est donné pour filtrer une ZdL par rapport à une autre :
    http://access.developpez.com/faq/?page=zdl#DepZdl

    A partir de la tu adapte .
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    J'ai mis ce code sur l'évenement "clic" de ma zone de liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Définit le type
    Me.Liste72.RowSourceType = "Table/Query"
     
    'Remplit la liste
    Me.Liste72.RowSource = " SELECT table.couleur FROM table WHERE table.marque=Forms!formulaire.marque; "
    et ça marche presque.

    Je m'explique, en reprenant l'example de ce formulaire:

    marque couleur

    ferrari rouge
    ferrari gris
    ferrari jaune
    porsche gris
    bmw gris

    Lorsque je clique sur la zone de liste de ma 2eme ligne (j'ai une zone de liste par ligne de formulaire), alors elle contient bien les éléments: rouge, gris, jaune.

    Le problème, c'est que le contenu de toutes les autres ZDL changent en même temps.

    J'ai essayé de mettre ce code au chargement de mon formulaire, mais dans ce cas toutes les ZDL contiennent la couleur du 1er enregistrement.

    Ou dois-je mettre ce code pour que chaque ZDL contienne sa ou ses couleur correspondant à sa ligne de formulaire (au moins est-ce possible?)

    Merci d'avance

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Ok, piège classique : tu utilise un formulaire en mode continue (c-à-d que tu as plusieur enr affiché à l'écran ;-).

    Le pb c'est que tu n'as qu'une seule liste pour TOUS les enr.

    la solution consiste à changer la source de la liste dans l'événement Current (Activé) de ton form

    moi j'écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.maListe.recordSource = me.maListe.recordSource.
    Ça parait stupide mais ça force Access à rafraichir la liste.

    Attention ça marche bien mais si dans un de tes enr tu as un élément qui n'est pas dans la liste, il apparait blanc, la valeur n'est pas perdue mais elle n'est plus affichée.

    Pour contourner ce pb j'ai fait 2 champs : 1 champ de sélection (appelé Choix maValeur) et un champ d'affichage (affMaValeur) basé sur une combobox non filtré. C'est pas d'un rare esthétisme mais ça marche bien.

    A+

    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.

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    J'ai mis ce code dans le "form_current" mais il ne veut pas (il m'envoie sur le debugeur).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.maListe.recordSource = me.maListe.recordSource.
    Et le point (que j'ai mis en rouge ci-dessus) est-il nécessaire?

    Et en mettant ce code dans le "form_activate", il veut bien, mais cela m'affiche toujours que le 1er enregistrement pour tous les ZDL.

    J'ai mis le code SQL dans contenu des propriétés de ma liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT table.couleur FROM table WHERE table.marque=Forms!formulaire.marque;
    Mais ne faut-il pas mettre un requery quelque part, du style
    Merci de m'aider, je sens qu'il me reste pas grand chose pour y arriver.

    Edit: En fait, ça met une erreur aussi lorsque je marque le code avec "recordsource" dans le form_activate

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Mea culpa, je suis trompé de propriété.

    1) Form_Current c'est correct chez moi.
    2) Le code que j'utilise est me.maListe.RowSource=me.maListe.RowSource mais tu pourrais aussi utiliser le Requery.

    L'événement Activate n'existe pas dans ma version (je suis A2002).

    Normalement l'affichage devrait être correct.

    Désolé pour les soucis causés.

    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. Suppression des éléments d'une zone de liste
    Par Marc_27 dans le forum IHM
    Réponses: 17
    Dernier message: 08/10/2008, 15h31
  2. Réponses: 2
    Dernier message: 29/07/2008, 18h47
  3. supprimer un élément dans une zone de liste
    Par mawelle dans le forum IHM
    Réponses: 8
    Dernier message: 03/06/2008, 15h05
  4. Ajout éléments dans une zone de liste
    Par tabtab dans le forum IHM
    Réponses: 15
    Dernier message: 01/10/2007, 08h39
  5. Réponses: 2
    Dernier message: 12/04/2006, 10h00

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