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 :

Quel est l'équivalent de selected pour une liste modifiable ?


Sujet :

IHM

  1. #1
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut Quel est l'équivalent de selected pour une liste modifiable ?
    Bonjour,
    zone_liste.selected(34); ça marche pour une zone de liste simple, mais je n'arrive pas à trouver l'équivalement pour ma zone de liste déroulante !?!
    Ca m'énerve; en plus je suis enrhumé et mon neurone pédale dans le yaourt!
    Ad talure,
    donquishoote.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Il n'y a rien, le contrôle prend la valeur choisie.

    Renvoie la valeur du combo.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut
    Voilà mon problème;
    Dans un formulaire j'utilise un répertoire comprenant de nombreux fonds de cartes; je mets le noms des fichiers dans une zone déroulante car la zone de liste normale est trop limitée en nombre pour la liste qui comporte 2 ou 3000 fichiers.
    Je cherche dans cette liste un fichier donné avec une fonction. Une fois que je l'ai trouvé, je voudrais pointer sur son nom dans la liste et le sélectionner.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pourquoi sélectionner une valeur dans une liste, puisque tu as déjà la valeur.

    Quand tu choisis une valeur dans un combo, c'est pour l'utiliser, mais si tu as la valeur, utilise la toute de suite.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre régulier Avatar de Jordmund
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 181
    Points : 118
    Points
    118
    Par défaut
    Si je comprend bien ta question...

    Il te faut passer par 1 requète.

    Tu sélectionnes ton critère dans ta liste déroulante et tu exécutes ta requète recherche (avec un bouton) selon le paramètre sélectionné.

  6. #6
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut
    Je veux sélectionner le fichier pour le montrer à l'utilisateur;
    par exemple; le gars cherche une carte d'agen; dans la fonction je cherche 'agen' dans la liste de ma zone modifiable,
    elle est classée par ordre alpha,
    donc quand la fonction trouve une occurrence je veux pointer sur le premier fichier contenant 'agen' dans son nom pour montrer l'emplacement dans la liste à l'utilisateur.
    Comprenne ?
    Alors que c'est très facile avec la méthode selected; je ne trouve pas l'équivalent pour la liste déroulante.
    C'est quand même un peu fort de café que les lignes d'une boite à listes soient limitées à 200 et qq !
    Ca doit quand même gêner bon nbre de pauvres bougres comme moi!
    Ad talure sans faute!

  7. #7
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Citation Envoyé par DonQuiShoote
    Je veux sélectionner le fichier pour le montrer à l'utilisateur;
    par exemple; le gars cherche une carte d'agen; dans la fonction je cherche 'agen' dans la liste de ma zone modifiable,
    elle est classée par ordre alpha,
    donc quand la fonction trouve une occurrence je veux pointer sur le premier fichier contenant 'agen' dans son nom pour montrer l'emplacement dans la liste à l'utilisateur.
    Comprenne ?

    Ad talure sans faute!
    Désolé mais c'est pas très clair...Je pencherais pour la soluce préconisée par Jordmund
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  8. #8
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut
    Bonjour,
    Ce n'est pas évident de comprendre sans voir!
    Je fais une application pour trouver certains fichiers dont j'ai placé la liste dans une zone de liste modifiable
    (la liste comporte parfois plusieurs milliers de noms; je bosse à l'insee);
    la zone de saisie de la combo cherche déjà les occurrences, mais uniquement d'après les 1eres lettres; or la chaine recherchée peut se trouver au milieu ou même à la fin. Ex rmi-agen-2004; oursins-sarlat; defm-gironde, etc.

    J'ai donc fait une 2e zone de saisie qui permet à l'utilisateur de déclarer une chaine de caractères, et un bouton pour lancer la recherche.
    Le bouton appelle une routine de recherche; quand elle trouve la 1ere occurrence, je voudrais ouvrir la zone déroulante, pointer sur le fichier contenant la chaine trouvée et sélectionner celui-ci.
    C'est ce dernier point que je n'arrive pas à faire, cela semble pourtant très simple; qq'chose m'échappe certainement mais je ne trouve pas quoi; j'ai le neurone enrhumé!
    Merci de chercher à m'aider
    DonQuiShoote.

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    C'est plus clair.

    Tu dois baser la source de ton combo sur une requête et ensuite tu pourras choisir l'occurrence qui te convient le mieux.
    En fait, tu veux faire une préselection de la liste du combo.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  10. #10
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut
    D'un seul élément;
    la liste de fichiers est classée dans la combo par ordre alpha.
    Je veux pointer sur la 1ere occurrence dans laquelle se trouve la chaine demandée.
    La routine que j'ai déjà faite, repère cette occurrence, si elle existe, à sa sortie, je voudrais activer et ouvrir la combo (c'est fait), mais je voudrais une instruction qui pointe sur la bonne ligne; comme la méthode 'selected' dans la zone de liste simple.
    Dans la routine de recherche, j'utilise une boucle avec
    liste_com.Column(colonne, i); 'i' étant l'incrément de la boucle; j'ai donc la position du fichier dans la combo; maintenant, en quittant la routine de recherche je veux la montrer à l'utilisateur en la sélectionnant.

  11. #11
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.Maliste.RowSource = "select * from table where Champ like " & "'*" & Me.ZoneDeSaisie2 & "*'"
    Me.Maliste.Requery
    Me.Maliste = me.Maliste.itemdata(0)  'La première ligne de liste
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  12. #12
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut
    C'est ce que je suis en train de faire!
    En fait aller sur la 1ere ligne pas de problème! C'est ce que je fais! L'ennui est que ce n'est pas là où je veux aller!
    Voici le code de ma fonction de recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Function cherche(liste As ComboBox, colonne As Integer, cherch As String)
    Dim i As Long, trouve As Boolean, ligne As Variant
    DoCmd.GoToControl ("liste_com")
    For i = 0 To liste_com.ListCount - 1
        If liste_com.Column(colonne, i) = chaine Then
        SendKeys "{F4}"
        ligne = i
        Me.liste_com = Me.liste_com.ItemData(ligne)
        Exit Function
        End If
        Next i
    End Function
    En fait je pense que je sors mal de la fonction, car la zone se déroule bien, mais le pointeur reste en début de liste, et ne va pas sur la ligne trouvée.

  13. #13
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Citation Envoyé par DonQuiShoote
    Bonjour,
    ...
    la zone de saisie de la combo cherche déjà les occurrences, mais uniquement d'après les 1eres lettres; or la chaine recherchée peut se trouver au milieu ou même à la fin. Ex rmi-agen-2004; oursins-sarlat; defm-gironde, etc.

    ...
    DonQuiShoote.
    Ce n'est pas avec EGAL mais avec LIKE qu'on fait ce genre de recherche...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  14. #14
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut
    Je débute juste avec access (un mois environ; je suis près de la retraite et je ne programme pratiquement plus; mon environnement de programmation perso est le C++ de Borland) et je ne connais très mal la syntaxe du vba.
    Peux-tu me donner un exemple (like au lieu d'égal) ? Je suis enrhumé et mon neurone a du mal à suivre!

  15. #15
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    C'est sûrement pas moi qui vais avoir des préjugés sur ton niveau...Le mien
    est léger aussi...
    La syntaxe du like est dans mon exemple ci-dessus avec un Rowsource (Chaine).
    Par contre je ne l'ai jamais utilisé avec un If...je vais essayer...@
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  16. #16
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    A priori ça donne ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If liste_com.Column(colonne, i) Like "'*" & Chaine & "*'" Then
    ...
    end if
    Pour ce qui est de ta boucle c'est d'un dont tu as besoin
    à la place de Exit Function
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  17. #17
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    ça avait l'air de couler de source mais après test non... la syntaxe dans un SQL et dans une ligne Instruction vba
    comme "If... Like ...then" diffèrent quelque peu
    mon exemple fonctionne (à adapter)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For I = 0 To Me.Modifiable0.ListCount - 1
    If Me.Modifiable0.ItemData(I) Like "*" & Me.ZoneDeSaisie2 & "*" Then
    Me.Modifiable0.SetFocus
    SendKeys "{F4}"  'Préférer Me.Modifiable0.dropdown
    Me.Modifiable0 = Me.Modifiable0.ItemData(I)
     
    Exit For
    End If
    Next I
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  18. #18
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut
    Merci pour ton aide.
    Entre temps, au boulot, on a eu une coupure de connexion internet, et je ne pouvais plus retourner dans le forum.
    A force de bidouiller, j'ai trouvé; maintenant ma routine fonctionne et pointe au bon endroit en sortant.
    Le dernier problème que j'avais était que la liste ne se déroulait pas, mais en mettent 'SendKeys "{F4}"' dans le code du bouton de recherche, ça marche.
    Les belges ont bien raison de dire qu'un belge à cheval est plus intelligent
    (parce que il y a plus de choses dans 2 têtes que dans une)!
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Function cherche(liste As ComboBox, colonne As Integer, cherch As String)
    Dim i As Long, trouve As Boolean, ligne As Variant
    DoCmd.GoToControl ("liste_com")
        For i = 0 To liste_com.ListCount - 1
         If liste_com.Column(colonne, i) = chaine Then
         ligne = i
         i = liste_com.ListCount - 1
         Me.liste_com.Requery
         DoCmd.GoToControl ("liste_com")
         liste_com.Dropdown
         Me.liste_com = Me.liste_com.ItemData(ligne)
         End If
        Next i
    End Function
    Private Sub recherche_Click()
    cherche liste_com, 0, chaine
    SendKeys "{F4}"
    End Sub
    A dichat sans faute,
    DonQuiShoote

  19. #19
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    T'es sûr? En saisissant "agen" il te retourne "rmi-agen-2004" avec EGAL???
    Ou alors je n'ai pas tout compris...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  20. #20
    Nouveau membre du Club Avatar de DonQuiShoote
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Points : 33
    Points
    33
    Par défaut
    Non;
    ma fonction n'est pas terminée;
    maintenant il faut que j'ajoute le code pour chercher une chaine de caractères dans chaque nom de fichier. Il doit bien avoir une instruction string par là qui me convienne; reste à la dénicher!
    Pour le moment, la fonction marche pour une chaine de caractères complète; si je demande le nom complet du fichier, la routine pointe bien dessus.
    Le problème que j'avais c'était pour trouver l'équivalent de 'selected' pour une zone de listes modifiable, car je n'arrivais pas à pointer sur le nom de fichier trouvé par la routine de recherche;
    c'est donc 'itemdata', mais je ne l'utilisais pas correctement.

    Précision;
    je n'ai pas besoin de rowsource puisque ma zone de listes est déjà remplie; ou alors je ne comprends pas ce que donne ta ligne comprenant rowsource
    Au départ (au lancement du formulaire dans lequel elle se trouve) je la remplis avec la liste de fichiers (énÔrme) d'un répertoire.

    Voili-voilà!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2003] mise en forme conditionnelle pour une liste modifiable
    Par Miss Ti dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/06/2009, 14h37
  2. html:select pour une liste de string
    Par sallemel dans le forum Struts 1
    Réponses: 1
    Dernier message: 10/12/2008, 17h06
  3. Réponses: 2
    Dernier message: 14/10/2005, 17h05
  4. Quel est l'équivalent de Findcomponent pour les Forms ?
    Par Ben_Le_Cool dans le forum Composants VCL
    Réponses: 12
    Dernier message: 23/09/2005, 12h48
  5. Réponses: 4
    Dernier message: 21/09/2003, 15h50

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