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 :

Afficher choix "Tous" dans zone de liste access renseigné par select


Sujet :

IHM

  1. #1
    Membre du Club Avatar de thiefer
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 94
    Points : 61
    Points
    61
    Par défaut Afficher choix "Tous" dans zone de liste access renseigné par select
    Bonjour à tous,
    voici certainement une interrogation basique mais je ne trouve pas d'échange préalable sur le sujet dans le forum.
    Sûrement pas utilisé les bons mots clefs...

    Voilà, j'ai deux zones de listes déroulantes qui se renseignent mutuellement en cascade.
    Cela fonctionne très bien.
    J'ai juste un soucis, je souhaite faire afficher une possibilité de choix supplémentaire, le choix "Tous".

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me.cbo_annee.DefaultValue = "'Tous'"
    Me.cbo_sport.DefaultValue = "'Tous'"
    Me.cbo_annee.RowSource = "SELECT DISTINCT Year([date]) AS Annee FROM tbl_donnees ORDER BY Year([date])"
    Me.cbo_sport.RowSource = "SELECT DISTINCT sport FROM tbl_donnees ORDER BY sport"
    Malheureusement, le champ cbo_sport affiche effectivement "Tous" mais cbo_annee affiche #Erreur.
    De plus, lorsque j'effectue une sélection, impossible de revenir sur mes pas et de pouvoir sélectionner à nouveau "tous" les sports.
    Quelqu'un pourrait -il me communiquer l'astuce qui va bien en la matière svp ?

    Merci par avance

    TF

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768

  3. #3
    Membre du Club Avatar de thiefer
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 94
    Points : 61
    Points
    61
    Par défaut Fonction B.Year no définie dans l'expression
    Salut LedZepp II (Désolé, je conserve toute ma préférence pour le IV)

    Merci pour ton retour,
    j'ai appliqué la méthode 2 avec table de valeurs.

    Voici donc le code que j'obtiens pour le champ année :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Me.cbo_annee.RowSource = "SELECT DISTINCT A.Year([date]) FROM (SELECT distinct B.Year([Date]), 1 AS Position FROM tbl_donnees AS B UNION SELECT * FROM tbl_zoneliste WHERE Entete='Toutes') AS A ORDER BY A.Indextri, A.Year([date])"
    Malheureusement, lorsque j'ouvre mon formulaire, la zone de liste année s'ouvre tjs à blanc et non pas avec la valeur toutes par défaut.
    De plus, lorsque je clique sur ma zone de liste année, j'obtiens le msg d'erreur mentionné en titre de ce post :
    Fonction B.Year non définie dans l'expression
    Kézaco !!!

    Si tu es encore par là, merci de ton aide à (re)venir

    TF

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Salut thiefer

    Tu as mis le nom de la table devant le nom de la fonction au lieu de le mettre devant le champ.

    D'abord teste la requête seule.
    Ça devrait donner ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT Annee
    FROM (
    SELECT distinct Year(B.[date]) As Annee, 1 AS Position FROM tbl_donnees AS B 
    UNION 
    SELECT * FROM tbl_zoneliste WHERE Entete='Toutes'
    ) AS A 
    ORDER BY A.Position, A.Annee ASC
    Une fois qu'elle fonctionne tu peux la transposer en vba.

    Désolé, je conserve toute ma préférence pour le IV
    Je ne t'en veux pas

    A+

  5. #5
    Membre du Club Avatar de thiefer
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 94
    Points : 61
    Points
    61
    Par défaut LZII#4 Thank you
    Salut LedZeppII,

    tout fonctionne parfaitement, c'est excellent !!!
    Avec qui plus est les valeurs de choix "Aucun" et "Aucune" également et l'affichage de "Toutes" et "Tous" par défaut.
    Merci bcp pour ton coup de pouce.

    A l'occaze, si tu passes par un autre de mes post encore non résolu

    Bon week end

    TF

  6. #6
    Membre du Club Avatar de thiefer
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 94
    Points : 61
    Points
    61
    Par défaut et avec des combox box en cascade ?
    Salut,

    alors la solution fonctionne parfaitement sur des combo indépendantes.
    Mon sujet est de pouvoir les utiliser avec des combo en cascade et je ne parviens pas à faire fonctionner.
    Voici mon code originel
    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 cbo_sport_Change()
     
    Me.cbo_annee.Requery
     
    Dim StrSport    As String
    Dim SQL         As String
     
             StrSport = "'" & Me.cbo_sport & "'"
            SQL = "SELECT DISTINCT Year([date]) AS Annee FROM tbl_donnees WHERE sport =" & StrSport & " ORDER BY Year([date])"
     
            ' Affecte la chaîne SQL à la liste des années
                cbo_annee.RowSource = SQL
            ' Déverrouille la liste des années
                cbo_annee.Enabled = True
            ' Donne le focus la liste des années
                cbo_annee.SetFocus
            ' Déroule la liste des années
                cbo_annee.Dropdown
     
    End Sub
    Voici avec l'addendum des choix Tous et Aucun ce que cela devient

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Sub cbo_sport_Change()
     
    Me.cbo_annee.Requery
     
    Dim StrSport    As String
    Dim SQL         As String
     
        Select Case Me.cbo_sport.Value
            Case "Tous"
            SQL = "SELECT Annee FROM (SELECT distinct Year(B.[date]) As Annee, 1 AS Position FROM tbl_donnees AS B Union SELECT * FROM tbl_zoneliste WHERE Entete='Toutes' OR Entete='Aucune') AS A ORDER BY A.Position, A.Annee ASC"
     
            Case "Aucun"
            SQL = "SELECT Annee FROM (SELECT distinct Year(B.[date]) As Annee, 1 AS Position FROM tbl_donnees AS B Union SELECT * FROM tbl_zoneliste WHERE Entete='Toutes' OR Entete='Aucune') AS A ORDER BY A.Position, A.Annee ASC"
     
            Case Else
            StrSport = "'" & Me.cbo_sport & "'"
            SQL = "SELECT Annee FROM (SELECT distinct Year(B.[date]) As Annee, 1 AS Position FROM tbl_donnees AS B Union SELECT * FROM tbl_zoneliste WHERE Entete='Toutes' OR Entete='Aucune') AS A WHERE sport =" & StrSport & " ORDER BY A.Position, A.Annee ASC"
        End Select
     
            ' Affecte la chaîne SQL à la liste des années
                cbo_annee.RowSource = SQL
            ' Déverrouille la liste des années
                cbo_annee.Enabled = True
            ' Donne le focus la liste des années
                cbo_annee.SetFocus
            ' Déroule la liste des années
                cbo_annee.Dropdown
     
    End Sub
    Concernant le Case Else, j'ai essayé ces trois solutions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT Annee FROM (SELECT distinct Year(B.[date]) As Annee, 1 AS Position FROM tbl_donnees AS B Union SELECT * FROM tbl_zoneliste WHERE Entete='Toutes' OR Entete='Aucune') AS A WHERE sport =" & StrSport & " ORDER BY A.Position, A.Annee ASC"
    Dans ce cas, seul "course" qui est le seul sport présent chaque année me ramène l'ensemble des valeurs "Aucune", "Toutes" et les années. Les autres sports ouvrent ma liste sans aucune valeur (un seul champ à blanc).
    Fonctionne ainsi avec sport car avec A.sport et B.sport, affichage d'une fenêtre me demandant d'entrer une valeur de paramètre pour A.sport (ou B.sport)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT Annee FROM (SELECT distinct Year(B.[date]) As Annee, 1 AS Position FROM tbl_donnees WHERE sport =" & StrSport & " AS B Union SELECT * FROM tbl_zoneliste WHERE Entete='Toutes' OR Entete='Aucune') AS A ORDER BY A.Position, A.Annee ASC"
    Dans ce cas, avec sport, A.sport ou B.sport, ma liste année s'ouvre sans valeur (1 seul champ à blanc)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT Annee FROM (SELECT distinct Year(B.[date]) As Annee, 1 AS Position FROM tbl_donnees AS B Union SELECT * FROM tbl_zoneliste WHERE Entete='Toutes' OR Entete='Aucune' AND sport =" & StrSport & " ) AS A ORDER BY A.Position, A.Annee ASC"
    Dans ce cas, avec sport, il m'affiche systématiquement la valeur "Toutes" suivies de l'ensemble des années trouvées dans la base quelque soit le sport.
    Avec A.sport et B.sport, il m'affiche deux fois la fenêtre entrer une valeur de paramètre, puis m'affiche les valeurs "Aucune", "Toutes" suivies de toutes les années en base sans considération de la sélection sport.

    C'est sûrement pas grand chose mais j'ai l'impression d'avoir fait le tour des possibilités, en tous cas de celles en ma limite de compétence de newbie.

    S'il était possible de me communiquer l'astuce qui va faire fonctionner mon code correctement,

    Merci par avance,

    TF

  7. #7
    Membre du Club Avatar de thiefer
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 94
    Points : 61
    Points
    61
    Par défaut oups désolé,
    SAlut à tous les lecteurs éventuels,

    désolé pour le message précédent qui était le fruit d'un dur lendemain de week end.
    Alors pour "ceusses" qui ne le savaient encore point, la solution est limpide et évidente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT Annee FROM
    (SELECT distinct Year(B.[date]) As Annee, 1 AS Position FROM tbl_donnees AS B 
    WHERE B.Sport=" & StrSport & " 
    Union SELECT * FROM tbl_zoneliste 
    WHERE Entete='Toutes' OR Entete='Aucune') 
    AS A 
    ORDER BY A.Position, A.Annee ASC"
    Problème résolu pour moi, en espérant que cela serve à d'autres

    Tch'ô

    TF

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

Discussions similaires

  1. choix auto dans zone de liste
    Par s3b_7 dans le forum IHM
    Réponses: 1
    Dernier message: 06/05/2008, 15h27
  2. Tester si un choix est fait dans zone de liste
    Par Junior_jef dans le forum Access
    Réponses: 2
    Dernier message: 25/08/2006, 11h28
  3. Pb Affiche contenu Recordset dans zone de liste
    Par stan314 dans le forum Access
    Réponses: 5
    Dernier message: 11/05/2006, 17h53

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