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 :

[A-00] Formulaire de priorités


Sujet :

IHM

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut [A-00] Formulaire de priorités
    Bonjour tout le monde,

    Je cherche à organiser, dans un formulaire tabulaire, un nouvel ordonnancement des données. L'exemple le plus explicite est l'outil qui permet de hiérarchiser les références disponibles dans un projet (Outils... Références...).

    Pour ce faire, j'ai donc ajouter une colonne ordre (entier long unique) et je gère mes déplacements par deux boutons "Haut" et "Bas".

    Un bout du code
    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
    Private Sub cmdBas_Click()
      Dim valDeb As Long, valFin As Long, sCritere As String
      DoCmd.Echo False
      valDeb = [tacord]
      [tacord] = 0
      DoCmd.GoToRecord acDataForm, Me.Name, acNext
      valFin = [tacord]
      [tacord] = valDeb
      DoCmd.GoToRecord acDataForm, Me.Name, acPrevious
      [tacord] = valFin
      Me.Requery
      sCritere = "tacord=" & valFin
      Me.tacord.SetFocus
      DoCmd.FindRecord valFin, acAnywhere, , , , acCurrent
      DoCmd.Echo True
      Me.taclib.SetFocus
    End Sub
    J'ai testé auparavant avec un recordset, mais je me suis noyé dans la position de départ et le retour à la position de départ (je suppose bookmark).

    Avez-vous travaillé sur ce genre de tableau ?
    Gabout

  2. #2
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bon euh désolé, j'ai trouvé !

    Ci-dessous le code si cela intéresse quelqu'un. Par contre, n'hésitez pas à me faire vos remarques pour l'améliorer.
    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
    Option Compare Database
    Option Explicit
    Private Sub cmdBas_Click()
      Dim oRst As DAO.Recordset
      Dim vDeb As Long, vFin As Long
      Dim sCritere As String
      Set oRst = Me.Recordset
      If oRst.AbsolutePosition < oRst.RecordCount - 1 Then
        vDeb = oRst.Fields("tacord").Value
        oRst.Edit
        oRst.Fields("tacord").Value = 0
        oRst.Update
        oRst.MoveNext
        vFin = oRst.Fields("tacord").Value
        oRst.Edit
        oRst.Fields("tacord").Value = vDeb
        oRst.Update
        oRst.MovePrevious
        oRst.Edit
        oRst.Fields("tacord").Value = vFin
        oRst.Update
        oRst.MoveNext
        sCritere = "tacord=" & vFin
        Me.Requery
        oRst.FindFirst sCritere
      Else
        Me.taclib.SetFocus
      End If
      Set oRst = Nothing
    End Sub
    Private Sub cmdHaut_Click()
      Dim oRst As DAO.Recordset
      Dim vDeb As Long, vFin As Long
      Dim sCritere As String
      Set oRst = Me.Recordset
      If oRst.AbsolutePosition > 0 Then
        vDeb = oRst.Fields("tacord").Value
        oRst.Edit
        oRst.Fields("tacord").Value = 0
        oRst.Update
        oRst.MovePrevious
        vFin = oRst.Fields("tacord").Value
        oRst.Edit
        oRst.Fields("tacord").Value = vDeb
        oRst.Update
        oRst.MoveNext
        oRst.Edit
        oRst.Fields("tacord").Value = vFin
        oRst.Update
        oRst.MovePrevious
        sCritere = "tacord=" & vFin
        Me.Requery
        oRst.FindFirst sCritere
      Else
        Me.taclib.SetFocus
      End If
      Set oRst = Nothing
    End Sub
    Je marquerai le code un peu plus tard... en attendant vos observations.
    Gabout

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

Discussions similaires

  1. [AC-2007] Priorité d'affichage de formulaire et focus
    Par Max_Agaki dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/02/2015, 15h26
  2. Réponses: 1
    Dernier message: 25/04/2012, 04h07
  3. Réponses: 5
    Dernier message: 10/10/2007, 13h28
  4. Priorité d'un champ dans un formulaire
    Par outworld dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/12/2006, 17h25
  5. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52

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