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 :

[Access 2003]Peut-on déplacer dans un formulaires des enregistrements?


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 256
    Par défaut [Access 2003]Peut-on déplacer dans un formulaires des enregistrements?
    Salut à tous

    je souhaiterai savoir s'il est possible de déplacer une ligne d'informations (donc un enregistrement) dans un formulaire?

    Merci de votre aide

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    bonjour,

    le déplacer selon quel critère ? La solution est fonction du problème...

    Philippe

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 256
    Par défaut
    je souhaiterai prendre deux enregistrement et les inverser

    est-ce possible?

    Merci de votre aide

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    s'il y a 2 enregistrements au maximum, c'est facile en inversant l'ordre d'affichage.

    s'il y a plus de 2 enregistrements affichés, il faut modifier individuellement leur ordre d'apparition, par exemple en ajoutant une colonne MonOrdre dans votre table et l'incrémenter de 1 en 1 pour chaque enregistrement et trier les enregistrement par ce champ.
    Ensuite, dans votre formulaire, ajouter 2 boutons par enregistrement (flèche haut et flèche bas), et l'utilisateur en cliquant sur le bouton fait monter ou descendre l'enr. concerné via un petit code VBA qui swappe le n° de 2 enregistrements (en cours et suivant ou en cours et précédent) suivi d'un requery pour afficher la modification.

    voilà, si quelqu'un a plus simple...

    Philippe

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 256
    Par défaut
    Comment faire pour inverser l'ordre d'affichage de 2 enregistrements

    Merci de ton aide

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Par défaut
    bonjour,

    a première vue je ferai comme ceci :

    a) dans l'en-tête de mon formulaire continu j'ajouterai une case à cocher que je nomme InvTri;
    b) sur l'évènement <Sur Chargement> de mon formulaire je charge le tri initial par VBA;
    c) sur l'évènement <Sur Click> de la case à cocher créée je mets un code VBA pour inverser le tri en cours.

    L'utilisateur en cliquant sur la case à cocher va ainsi inverser l'ordre des 2 enregistrements.

    voici le code du 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
     
     
    Option Compare Database
    Option Explicit
     
    ' déclare une constante globale au formulaire
    Private Const gcsChampTri As String = "[MON_CHAMP_QUI_TRI]"
     
    ' Evènement de chargement du formulaire
    Private Sub Form_Load()
       ' Charge le nom du champ pour appliquer le tri sur le formulaire
       Me.OrderBy = gcsChampTri
       ' Active le tri
       Me.OrderByOn = True
    End Sub
     
    ' Evènement suite au clique sur la case à cocher
    Private Sub InvTri_Click()
       ' Déclare une constante pour tri DESCendant
       Const csDesc As String = " DESC"
       si le tri en cours n'est pas descendant (puisque orderby ne contient que le nom du champ)
       If Me.OrderBy = gcsChampTri Then
          ' on charge le tri inversé
          Me.OrderBy = gcsChampTri & csDesc
       Else
          ' si le tri inversé est actif, on charge un tri ASCendant
          Me.OrderBy = gcsChampTri
       End If
       ' on demande enfin de réanalyser la requête du formulaire avec le tri
       Me.Requery
    End Sub
    Voilà en gros le principe.

    Philippe

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/08/2006, 08h25
  2. Réponses: 3
    Dernier message: 13/06/2006, 14h16
  3. [Access 2002] Calcul de champ dans un formulaire !
    Par Amanck dans le forum Access
    Réponses: 6
    Dernier message: 29/05/2006, 15h22
  4. [Access 2003]Mettre une table dans un formulaire?
    Par steeves5 dans le forum Access
    Réponses: 2
    Dernier message: 04/05/2006, 13h30
  5. [ACCESS 2003] arrêt non désiré dans le code
    Par Golzinne dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/02/2006, 23h24

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