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 :

Zone de liste de formulaire et ordre de champs [AC-2013]


Sujet :

IHM

  1. #1
    Membre régulier Avatar de jajoju
    Homme Profil pro
    Semi retraité
    Inscrit en
    Novembre 2016
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Semi retraité

    Informations forums :
    Inscription : Novembre 2016
    Messages : 169
    Points : 98
    Points
    98
    Par défaut Zone de liste de formulaire et ordre de champs
    Bonjour,

    J'ai presque terminé mon programme et il me reste quelques items à rafistoler.

    Par exemple, dans mon formulaire j'ai une zone de liste dans lequel apparaît la DATE par ordre décroissant.

    Dans la requête lié à ce formulaire , la DATE a comme critère " décroissant "

    Parfois, j'aimerais que la DATE apparaisse par ordre croissant dans la zone de liste.

    Dois-je ajouter un bouton de commande pour que la date bascule à " croissant " ?

    Dois-je insérer une ligne dans la requête ou encore une ligne VBA dans mon module ??

    J'ai travaillé mon module avec quelque chose comme DoCmd.SetOrderBy "Date ASC, ... mais je n'y arrive pas ...

    Je dois tourner autour du pot ...

    Merci

  2. #2
    Modérateur

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

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

    Habituellement les zones de liste sont alimentées par une requête donc si tu veux les dates dans un ordre particulier, il faut changer le SQL de la requête.

    Si tu veux garder ta requête inchangée tu peux changer la source de la liste avec quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim db as dao.database: set db=currentdb
    dim q as dao.querydef: set q=db.querydefs("NomTaQuery")
    dim sql as string: sql=q.sql
     
    sql=replace(sql, "[NomTaDate] DESC", "[NomTaDate] ASC") 'Change l'ordre de tri dans la clause Order By de la requête
    me.NomTaListe.RowSource=sql
     
    set q=nothing
    call db.close: set db=nothing
    A+

  3. #3
    Membre régulier Avatar de jajoju
    Homme Profil pro
    Semi retraité
    Inscrit en
    Novembre 2016
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Semi retraité

    Informations forums :
    Inscription : Novembre 2016
    Messages : 169
    Points : 98
    Points
    98
    Par défaut date et requête
    Merci,

    Ca fonctionne ... J'ai dû faire quelques modifications pour faire correspondre les mêmes colonnes de la requête et de la zone de liste.

    J'ai inséré un bouton de commande et, en cliquant dessus , le tour est joué !!

    Merci,
    Jajoju

  4. #4
    Membre régulier Avatar de jajoju
    Homme Profil pro
    Semi retraité
    Inscrit en
    Novembre 2016
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Semi retraité

    Informations forums :
    Inscription : Novembre 2016
    Messages : 169
    Points : 98
    Points
    98
    Par défaut date , zone de liste et requête
    Bonjour,

    Par contre , le seul petit problème c'est quand je clique à nouveau sur le bouton de commande , le tri ne se fait plus.

    Le tri ( de DESC à ASC ) ne se fait qu'au premier clic mais ensuite , au clic suivant ( de ASC à DESC ) , rien ne se produit !!

    Probablement je dois remettre quelque chose à "0" mais je ne sais pas quoi

    Merci

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    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 840
    Points : 14 944
    Points
    14 944
    Par défaut
    Bonsoir,
    le replace ne va fonctionner que dans un sens parce que tu remplaces toujours DESC par ASC mais pas ASC par DESC. Je ne connais pas ta requête ni ton formulaire mais à mon avis tu devrais remplacer ton bouton par un bouton bascule et mettre un code de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Me.BoutonBascule1 = -1 Then
        "tontextesql order by [NomTaDate] DESC"
    Else
        "tontextesql order by [NomTaDate] ASC"
     
    End If
    si tu n'y arrives pas montre ton code

  6. #6
    Membre régulier Avatar de jajoju
    Homme Profil pro
    Semi retraité
    Inscrit en
    Novembre 2016
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Semi retraité

    Informations forums :
    Inscription : Novembre 2016
    Messages : 169
    Points : 98
    Points
    98
    Par défaut date et requête
    J'ai éliminé mon bouton de commande ( ainsi que le code VBA qui va avec ) et j'ai ajouté le bouton bascule

    Mais je comprends pas le " tontextesql " (??) Quel texte ?


    Voici le code ( Date est le nom de mon champs )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub BoutonBascule36_Click()
     
    If Me.BoutonBascule36 = -1 Then
     
        "tontextesql order by [Date] DESC"
    Else
        "tontextesql order by [Date] ASC"
     
    End If
     
    End Sub
    Merci !!

  7. #7
    Membre régulier Avatar de jajoju
    Homme Profil pro
    Semi retraité
    Inscrit en
    Novembre 2016
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Semi retraité

    Informations forums :
    Inscription : Novembre 2016
    Messages : 169
    Points : 98
    Points
    98
    Par défaut Bouton bascule : date croissant ou décroissant dans zone de liste
    Bonjour,

    Pour faire suite à la discussion précédente concernant le bouton bascule qui change la date de croissant à décroissant ( ou le contraire ),

    j'ai tenté ceci sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub BoutonBascule36_Click()
     
            If Me.BoutonBascule36 = -1 Then
     
               "[MaRequête] order by [Date] DESC"
     
           Else
     
               "[Ma requête] order by [Date] ASC"
     
    End If
    J'ai essayé aussi avec le [Nom_Zone _de liste] ... rien fonctionne

    Merci !

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    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 840
    Points : 14 944
    Points
    14 944
    Par défaut
    on aimerai plutôt voir ce que toi tu as fait. On ne connait toujours pas le contenu de ta requête liée au formulaire et ne la connaissant pas j'ai mis "tontextesql" comme exemple, j'aurai pu mettre "select toto from tata order by titi" ou "NomTaQuery" comme marot_r.
    Utilises-tu une requête nommée (créée et sauvegardée avec un nom via l'interface de création de requêtes), une requête construite directement dans la propriété Source de ton formulaire ou passes-tu par VBA (Me.recordsource = "select ...") ?
    Car la solution est différente selon le contexte.

  9. #9
    Membre régulier Avatar de jajoju
    Homme Profil pro
    Semi retraité
    Inscrit en
    Novembre 2016
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Semi retraité

    Informations forums :
    Inscription : Novembre 2016
    Messages : 169
    Points : 98
    Points
    98
    Par défaut date triée et requête
    Bonjour,
    C'est simple je veux juste trier la date de ma requête ( en ordre croissant ou décroissant ) à l'aide d'un bouton bascule ... au lieu de celui que j'utilise bouton de commande

    Ca doit être quelque chose comme Select Date from Ma.Requete Order by Date DESC ( et non pas toto from tata )

    Faut-il ajouter d'autres choses ? Pour le reste de mon programme , tout fonctionne ...

    Voici ma requête:

    Nom : 2016-12-16_130247.jpg
Affichages : 87
Taille : 72,9 Ko
    Merci !!

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    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 840
    Points : 14 944
    Points
    14 944
    Par défaut
    Tu utilises donc une requête nommée [Requête des caches Trouvées].
    Peux-tu l'afficher en mode SQL et faire un copier/coller du code entre les balises de code (icône # en mode création de message).
    Merci

  11. #11
    Membre régulier Avatar de jajoju
    Homme Profil pro
    Semi retraité
    Inscrit en
    Novembre 2016
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Semi retraité

    Informations forums :
    Inscription : Novembre 2016
    Messages : 169
    Points : 98
    Points
    98
    Par défaut Mode SQL
    Bonjour,

    Ça me donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Géocaching.N°, Géocaching.Date, Géocaching.Référence, Géocaching.Description, Géocaching.Dimensions, Géocaching.Ville, Géocaching.Multicache, Géocaching.Énigme, Géocaching.Trouvé, Géocaching.Archivée
    FROM Géocaching
    WHERE (((Géocaching.Date) Between Format([date_début],"dd/mm/yy") And Format([date_finale],"dd/mm/yy")) AND ((Géocaching.Ville) Like "*" & [filtreVille]) AND ((Géocaching.Trouvé)=True))
    ORDER BY Géocaching.Date;
    J'apprends en même temps
    Malgré un petit programme personnel que j'ai créé et qui fonctionne bien , je suis un débutant ( mettons débutant Niveau 3 )

    Merci

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    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 840
    Points : 14 944
    Points
    14 944
    Par défaut
    On va repartir de du code de marot_r :
    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
     
    Private Sub BoutonBascule36_Click()
    Dim db as Dao.Database: Set db=CurrentDb
    Dim q as Dao.QueryDef: Set q=db.QueryDefs("[Requête des caches Trouvées]")
    Dim sql as String: sql=q.sql
     
    If Me.BoutonBascule36 = -1 Then
        sql=Replace(sql, "Géocaching.date;", "Géocaching.date ASC;") 'Change l'ordre de tri dans la clause Order By de la requête
    Else
        sql=Replace(sql, "Géocaching.date;", "Géocaching.date DESC;") 
    End If
     
    Me.NomTaListe.RowSource=sql   ' <<==== NomTaListe à remplacer par le nom correct
     
    set q=Nothing
    db.Close: set db=Nothing
     
    End Sub

  13. #13
    Membre régulier Avatar de jajoju
    Homme Profil pro
    Semi retraité
    Inscrit en
    Novembre 2016
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Semi retraité

    Informations forums :
    Inscription : Novembre 2016
    Messages : 169
    Points : 98
    Points
    98
    Par défaut Date triée croissant et décroissant
    Merci,

    Je suis bien content.

    Le formulaire trie les dates comme sur des roulettes
    Je commence à comprendre le principe
    Est-ce que le langage SQL est un langage indépendant dont ACCESS se sert dans sa plate-forme ??? Ou bien SQL fait partie de ACCESS ?
    Merci encore une fois !!!
    Nom : 1.jpg
Affichages : 95
Taille : 146,0 Ko

  14. #14
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Le SQL est un langage et une norme.
    Sous Access, je dirais le Query By Example (QBE) est plus utilisé.

    Peu de SGBD/R suivent la norme SQL.


    Si le sujet vous intéresses, voici un peu de lecture

    Cordialement,
    Chtulus

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/12/2007, 16h22
  2. Réponses: 1
    Dernier message: 19/09/2007, 18h55
  3. zone de liste et formulaire
    Par imeys dans le forum IHM
    Réponses: 5
    Dernier message: 16/07/2007, 06h26
  4. Réponses: 3
    Dernier message: 24/02/2007, 15h21
  5. contrôle des zones de liste dans formulaire
    Par philpaul dans le forum IHM
    Réponses: 4
    Dernier message: 25/11/2005, 23h28

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