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 :

Appliquer le même tri sur le formulaire et sur l'état [AC-2013]


Sujet :

IHM

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut Appliquer le même tri sur le formulaire et sur l'état
    Bonjour à tous,

    J'ai une petite question sur le tri des formulaires et des états (pour une base qui tournera sous runtime).

    J'ai un formulaire que je souhaiterais pouvoir trier sur la colonne qui m'intéresse. Quels sont les possibilités existantes ? Une liste déroulante me parait pratique pour faire cela, mais avec quel code ?

    J'ai bien tenté quelque chose qui fonctionne mais je me dis au final que ça me parait assez bizarre comme méthode.

    J'ai créé une liste déroulante avec des valeurs personnalisées, et ensuite sur l'évènement "AfterUpdate" de cette liste, je vérifie la valeur sélectionnée et j'applique un "OrderBy" différent pour chaque valeur.

    Le problème c'est que je dois créer tout un tas de "If Then" (un pour chaque valeur) et je me dis qu'il doit y avoir un code plus léger, mais lequel...

    Ensuite, dans mon formulaire il y a un bouton pour imprimer l'état. Comment faire pour que l'état soit imprimé en tenant compte du tri en cours dans le formulaire ?

    Merci pour vos réponses

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Ensuite, dans mon formulaire il y a un bouton pour imprimer l'état. Comment faire pour que l'état soit imprimé en tenant compte du tri en cours dans le formulaire ?
    Je m'orienterais vers une construction dans laquelle le formulaire et l'état seraient basés sur la même requête (enregistrée).

    Je modifierais cette requête "à la volée" quand l'utilisateur a fixé son choix de tri.


    Pour exprimer le choix du tri, tu pourrais placer un contrôle au-dessus de chaque colonne du formulaire*, cela permettrait à l'utilisateur d'y inscrire un nombre qui correspondrait à l'ordre du tri.

    * Eventuellement 2 contrôles si tu envisages le tri ascendant ou descendant.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Merci Claude

    Je m'orienterais vers une construction dans laquelle le formulaire et l'état seraient basés sur la même requête (enregistrée).
    Le formulaire et l'état sont basés sur la même requête

    Je modifierais cette requête "à la volée" quand l'utilisateur a fixé son choix de tri.
    Comment ? un petit exemple de code serait le bienvenu.


    Pour exprimer le choix du tri, tu pourrais placer un contrôle au-dessus de chaque colonne du formulaire*, cela permettrait à l'utilisateur d'y inscrire un nombre qui correspondrait à l'ordre du tri.

    * Eventuellement 2 contrôles si tu envisages le tri ascendant ou descendant.
    Un controle pour y inscrire un nombre, je ne comprends pas très bien, pourquoi pas un simple bouton alors, et que penses-tu de la liste déroulante ?

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Montre une capture d'écran avec ton formulaire. Ce sera plus commode pour discuter.

    Qu'envisages-tu comme items dans ta liste déroulante ?

    Envisages-tu de trier sur plusieurs colonnes simultanément ? Croissant et décroissant ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Nom : sejours.jpg
Affichages : 460
Taille : 117,0 Ko

    Dans ma liste déroulante, les choix seront tout simplement les titres des colonnes.

    Le tri sur plusieurs colonnes n'est pas indispensable mais serait un plus. Idem pour le tri décroissant.

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    OK, mais... après le repas !

    À +
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Pas de soucis ! Bon appétit

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Je mange vite, mais je programme lentement...


    Voici un premier jet

    La table



    La source



    Le formulaire au départ




    Trié par Lieu croissant et Client décroissant




    Contraintes
    Le nom des contrôles pour l’ordre de tri : « triXXXX » XXXX = le nom de la colonne dans rLaSource.
    Le nom des boutons d’option : « optXXXX » XXXX = le nom de la colonne dans rLaSource.
    Les arguments de tri doivent être numérotés à partir de 1 et constituer une suite ininterrompue.

    Le code associé au formulaire
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Option Compare Database
    Option Explicit
     
    Private Sub BtOrdreNat_Click()
      Dim ctl As Control
      For Each ctl In Me.Controls
        If ctl.Name Like "opt*" Then
            ctl = -1
          Else
            If ctl.Name Like "tri*" Then
                ctl = 0
            End If
        End If
      Next ctl
      Call btTrier_Click
    End Sub
     
    Private Sub btTrier_Click()
      Dim i As Integer
      Dim j As Integer
      Dim ctl As Control
      Dim sClauseOrder As String
      Dim q As QueryDef
      'Compter les arguments de tri
      i = 0
      For Each ctl In Me.Controls
        If ctl.Name Like "tri*" Then
            If ctl <> 0 Then i = i + 1
        End If
      Next ctl
      If i = 0 Then 'pas d'argument => ordre naturel
          Set q = CurrentDb.QueryDefs("rLaSource")
          q.SQL = "SELECT * FROM LaTable;"
          'Actualiser le formulaire
          Me.RecordSource = Me.RecordSource
          Exit Sub
      End If
      'Construire la clause Order
      sClauseOrder = " ORDER BY "
      For j = 1 To i
        For Each ctl In Me.Controls
          If ctl.Name Like "tri*" Then
              If ctl = j Then
                  sClauseOrder = sClauseOrder & Right(ctl.Name, Len(ctl.Name) - 3)
                  If Me("opt" & Right(ctl.Name, Len(ctl.Name) - 3)) = 0 Then
                      sClauseOrder = sClauseOrder & " DESC"
                  End If
                  sClauseOrder = sClauseOrder & ","
              End If
          End If
          Next ctl
      Next j
      'Supprimer la dernière virgule
      sClauseOrder = Left(sClauseOrder, Len(sClauseOrder) - 1)
      'Construire le sql de rLaSource
      Set q = CurrentDb.QueryDefs("rLaSource")
      q.SQL = "SELECT * FROM LaTable " & sClauseOrder & ";"
      'Actualiser le formulaire
      Me.RecordSource = Me.RecordSource
      'Libérer q
      Set q = Nothing
    End Sub
     
    Private Sub Form_Close()
      'Rétablir l'ordre naturel
      Dim q As QueryDef
      Set q = CurrentDb.QueryDefs("rLaSource")
      q.SQL = "SELECT * FROM LaTable;"
      Me.Requery
      Set q = Nothing
    End Sub
    La bdD test est ici : http://claudeleloup.developpez.com/&99/FormTri.mdb

    Me faire signe si nécessaire que je revienne expliquer le code.

    P.-S. Pour l'état, tu lui donnes comme source rLaSource et il sera dans le même ordre que le formulaire.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Je mange vite, mais je programme lentement...
    Mieux vaut l'inverse

    Merci pour ton aide Claude, je vais essayer de comprendre tout ça, cependant j'ai peur que cela soit un peu compliqué pour l'utilisateur final de la base.

    Il faut que je teste.

    Si toutefois au final je préfère utiliser une liste déroulante (tant pis pour le tri sur plusieurs champs), est ce que le code est compliqué (surtout pour la transmission du tri à l'état) ?

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    que cela soit un peu compliqué pour l'utilisateur final de la base.
    Qu'est-ce qui est compliqué pour l'utilisateur ???

    Il inscrit un nombre au-dessus de la colonne et clique sur le bouton Trier. Il ne faut quand même pas les sous-estimer !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Je ne sais pas, tu as peut-être raison, c'est juste que j'ai un peu de mal avec les chiffres à saisir dans les zones de texte, je ne les vois pas faire ça, je ne trouve pas ça très ergonomique, mais je le répète, il faut que je teste.

    Sans vouloir abuser, j'aurais bien aimé un exemple de système avec liste déroulante pour voir ce qui est le mieux.

  12. #12
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    c'est juste que j'ai un peu de mal avec les chiffres à saisir dans les zones de texte, je ne les vois pas faire ça
    Décidément, tu persévères !

    Si tu te contentes d'un tri ascendant sur une seule colonne à la fois, envisage plutôt un double-clic sur l'étiquette de la colonne, ça me semble plus ergonomique qu'une zone de liste !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  13. #13
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    En effet c'est plus ergonomique, mais il faut toujours que la requête soit modifié pour l'état

  14. #14
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Mais non, ça ne change rien à l'affaire !

    Désolé, je dois interrompre pour aujourd'hui.

    Reviens-moi quand tu auras digéré le code actuel.

    Essaie de l'adapter pour trier sur une colonne en double-cliquant sur l'étiquette de celle-ci.
    A+
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  15. #15
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Désolé de prendre la discussion en cours ( Claude), je me permets de vous signaler un tuto qui semble pouvoir répondre au thème de la discussion

    Listes Multifonctions

    Pour imprimer avec les critères choisis, il suffit de récupérer la source du filtre et l'appliquer à l'état

    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  16. #16
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Moi aussi je prends en cours de route.
    Aux contributions de Claude et Jeannot j'ajoute un autre petit lien:

    http://jdgayot.developpez.com/tutori...tre/#LII-B-1-a

  17. #17
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Salut Jean et Jean-Damien,


    Bravo à vous deux pour ces contributions !


    Il a de quoi lire, notre ami rag83...


    Au plaisir de vous recroiser.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #18
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Bonjour à tous,

    Merci pour les liens.

    J'ai à peu prés compris le code, le résultat attendu est bien la, je vais voir si je peux enjoliver le tout !

    Citation Envoyé par ClaudeLELOUP Voir le message
    P.-S. Pour l'état, tu lui donnes comme source rLaSource et il sera dans le même ordre que le formulaire.
    Je dois avoir oublié de faire quelque chose car ça ne fonctionne pas, l'état n'est pas trié comme le formulaire malgré qu'il ait la même source.

  19. #19
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Je dois avoir oublié de faire quelque chose car ça ne fonctionne pas, l'état n'est pas trié comme le formulaire malgré qu'il ait la même source.
    Oui, sans doute.


    Un exemple ici : http://claudeleloup.developpez.com/&99/FormTri.mdb
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  20. #20
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Alors apparemment le problème vient de la zone de texte "total" qui se trouve sur mon état avec =Compte(*) dans source controle. Si je supprime cette zone de texte, le tri se fait bien.
    Est ce qu'il y a moyen de la garder ?

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

Discussions similaires

  1. Probleme sur un formulaire basé sur une vue
    Par mattmax dans le forum IHM
    Réponses: 0
    Dernier message: 02/08/2013, 14h19
  2. Réponses: 6
    Dernier message: 23/04/2013, 11h14
  3. Réponses: 3
    Dernier message: 24/09/2008, 08h54
  4. Réponses: 1
    Dernier message: 28/03/2007, 19h20
  5. [Formulaire]saisie sur deux formulaires
    Par liazidf dans le forum IHM
    Réponses: 5
    Dernier message: 06/02/2007, 09h40

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