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] valeur correspondante ?


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut [liste déroulante] valeur correspondante ?
    Bonjour,

    Quand on crée une zone de liste déroulante, Access nous propose de stocker la valeur sélectionnée en mémoire. Mais comment ressortir cette valeur ?

    Je voudrais faire ça pour ouvrir un état différant selon cette valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande7_Click()
        Select Case Modifiable5.[[[VALEUR SELECTIONNEE]]]
        Case Is = 0
            DoCmd.OpenReport "1-site&type2"
        Case Is = 1
            DoCmd.OpenReport "2-lignePL&type2"
        End Select
    End Sub
    Est-ce que mon code serait juste et quelle peut être cette variable tant recherchée ?

    Merci.




    EDIT : j'ai mis TabIndex et ça a marché, sauf qu'au lieu d'ouvrir, ça m'a imprimé l'état

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    ================SOLUTION=================
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Select Case Modifiable5.????
        Case Is = 0
            DoCmd.OpenReport "1-site&type2", acViewPreview
        Case Is = 1
            DoCmd.OpenReport "2-lignePL&type2", acViewPreview
        End Select
    si on n'ajoute pas acViewPreview, c'est acViewNormal qui est mis par défaut, et qui imprime l'état.

  3. #3
    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
    Citation Envoyé par Zak Blayde
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Commande7_Click()
        Select Case Modifiable5
          Case 0:'C'est plus simple comme cela,  le = est implicite
            DoCmd.OpenReport "1-site&type2"
          Case 1
            DoCmd.OpenReport "2-lignePL&type2"
          case else
            error 5 :'Juste pour être sur d'attraper le cas ou tu ajoutes une nouvelle valeur et tu oublie de mettre ton code à jour.
        End Select
    End Sub
    Access garde toujours la valeur en mémoire mais il peut aussi l'assigner à un champ dans une table.
    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    si on met juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select case modifiable 5
    ça ne marche pas. Il faut utiliser TabIndex.
    Mais par contre, en fait mon truc ne marche pas, car l'index reste à 0 et c'est toujours le même état qui s'ouvre. Comment faire pour qu'il soit automatique quand on sélectionne tel élément de la liste ?

    edit : eh mais je dis n'importe quoi, tabindex c'est l'index de tabulation comme son nom l'indique, et ça n'a rien à voir ! C'est quoi alors la variable à utiliser ?
    Modifiable5.???

  5. #5
    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
    Ben oui c'est ce que fait le code que tu as mis et que j'ai modifié ... où est le pb ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    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
    20
    Private Sub Commande7_Click()
        Select Case Modifiable5
        Case 0
            DoCmd.OpenReport "1-site&type2", acViewPreview
        Case 1
            DoCmd.OpenReport "2-lignePL&type2", acViewPreview
        Case 2
            DoCmd.OpenReport "3-lignePL", acViewPreview
        Case 3
            DoCmd.OpenReport "4-Client&Type2", acViewPreview
        Case 4
            DoCmd.OpenReport "5-Client&Plateforme", acViewPreview
        Case 5
            DoCmd.OpenReport "6-statut&site", acViewPreview
        Case 6
            DoCmd.OpenReport "7-Retard", acViewPreview
        Case 7
            DoCmd.OpenReport "8-Type1&site&Type2", acViewPreview
        End Select
    End Sub
    ça n'aboutit à rien car il faudrait une variable attelée à Modifiable5 qui serait = 0 à 7 mais ce n'est pas le cas...
    Ce qu'il faudrait que je sache c'est comment appeler le contenu textuel de modifiable5 comme ça à la place des numéros, je mettrais les différents choix de la liste.

    EDIT : en fait il faut mettre à la place de modifiable 5 : Me![Modifiable5]
    mais ensuite dans les différents cas, comment mettre des options comprenant des espaces sans faire d'erreur ? J'ai essayé les [] et ça ne va pas.
    EDIT2 : avec les guillemets ça marche ! Merci à tous.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    autre problème décidément incompréhensible avec une autre liste déroulante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande27_Click()
        Debug.Print Me![Modifiable25]
        DoCmd.OpenForm "Revival", , , "Pilote = Me![Modifiable25]"
     
    End Sub
    Avec ce code, bizarrement ce coup-ci, la variable Me![Modifiable25] reçoit le numéro dans la liste et non le nom qui est entré !
    Ex. J'ai quatre noms dans la liste, je clique sur le quatrième (on va dire John Smith), et si je regarde avec un debug.print le contenu de la variable, je trouve 4 au lieu de John Smith.

    Quelqu'un a une idée ?

  8. #8
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    tu confonds la valeur affichée et la colonne liée... Regardes les propriétés de ta combo... tu dois avoir plusieurs colonnes ... et une propriété Colonne liée ==> c'est elle qui détermine la valeur retournée par Sinon tu peux aussi aller chercher la valeur d'une autre colonne avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me!Modifiable25.column(1)
    par exemple pour atteindre la seconde colonne.

  9. #9
    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
    Citation Envoyé par Zak Blayde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande27_Click()
        Debug.Print Me![Modifiable25]
        DoCmd.OpenForm "Revival", , , "Pilote = Me![Modifiable25]"
     
    End Sub
    Me![Modifiable25] est entre guillemet donc c'est un texte qui n'est pas interprété.

    Accessoirement tu devrais changer les nom de tes listes 'Modifiable25' ça dit absolument rient 'lstPilote' c'est plus parlant tu sais en le lisant que c'est la liste des pilotes. Tu pourrais aussi mettre choixPilote comme cela ton code se lirait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.OpenForm "Revival", , , "Pilote = """ & me.choixPilote & """"
    A+

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande27_Click()
        Debug.Print Me.choixpilote
        DoCmd.OpenForm "Revival", , , "Pilote = """ & Me.choixpilote.Column(1) & """"
     
    End Sub
    impeccable merci !

    Par contre je n'ai toujours pas trouvé comment désactiver l'ajout d'un nouvel enregistrement. Dans ce cas là par exemple ça donnerait quoi le code ?

  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
    Si tu veux le désactiver définitivement, le plus simple est de mettre la propriété 'Autoriser ajout' du form à false.

    Par code tu peux faire dans le form où tu veux empécher l'ajout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.AllowAddition = false
    La remarque sur les liste s'applique aussi aux boutons :-) Commande27 ça fait quoi ? btnOuvrirPilote ?

    A+

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

Discussions similaires

  1. [AC-2007] saisie de données - liste déroulante à valeurs variables
    Par baptistehgc dans le forum Access
    Réponses: 26
    Dernier message: 27/07/2012, 11h24
  2. [AC-2007] Liste déroulante: valeur sélectionnée par défaut
    Par Shinoda00 dans le forum IHM
    Réponses: 1
    Dernier message: 20/01/2010, 10h44
  3. Listes déroulantes valeur par défaut
    Par Antherak dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 03/10/2008, 17h42
  4. Réponses: 12
    Dernier message: 15/11/2007, 17h01
  5. Zone de liste déroulante, valeur de requete et fixe
    Par Fritzoune dans le forum Access
    Réponses: 4
    Dernier message: 12/10/2005, 17h21

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