Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modifier l'ordre de classement de fiches

6 réponses
Avatar
Hylcourt-Lefuret
Bonjour à tous!

Voilà mon problème:
J'enregistre au fils de l'eau des fiches "évenements" relatives à un suivi
de dossier. Actuellement ces fiches sont classées chronologiquement au fur et
à mesure de leur saisie.
Je souhaiterais pouvoir facilement "remonter" ou "descendre" une fiche dans
la liste (n+1 ou n-1 par rapport à sa position) de manière simple (un bouton
de commande par exemple...)

Merci pour votre aide! --
Hylcourt-Lefuret

6 réponses

Avatar
Bonjour
Si tu as les fiches par formulaire tu peux créer de boutons suivant ou
précédent avec les outils access sur ton formulaire
Guy

"Hylcourt-Lefuret" a écrit dans
le message de news:
Bonjour à tous!

Voilà mon problème:
J'enregistre au fils de l'eau des fiches "évenements" relatives à un suivi
de dossier. Actuellement ces fiches sont classées chronologiquement au fur
et
à mesure de leur saisie.
Je souhaiterais pouvoir facilement "remonter" ou "descendre" une fiche
dans
la liste (n+1 ou n-1 par rapport à sa position) de manière simple (un
bouton
de commande par exemple...)

Merci pour votre aide! --
Hylcourt-Lefuret


Avatar
Hylcourt-Lefuret
Merci Guy pour ta réponse.
En fait je ne veux pas me"déplacer" d'une fiche à l'autre, je cherche un
moyen de la reclasser c'est à dire de modifier la position "n" de la fiche
sélectionnée soit en "n-1" ou "n+1"
Un vrai casse-tête...! (compte-tenu de mon niveau de connaissances...) --
Hylcourt-Lefuret



Bonjour
Si tu as les fiches par formulaire tu peux créer de boutons suivant ou
précédent avec les outils access sur ton formulaire
Guy

"Hylcourt-Lefuret" a écrit dans
le message de news:
Bonjour à tous!

Voilà mon problème:
J'enregistre au fils de l'eau des fiches "évenements" relatives à un suivi
de dossier. Actuellement ces fiches sont classées chronologiquement au fur
et
à mesure de leur saisie.
Je souhaiterais pouvoir facilement "remonter" ou "descendre" une fiche
dans
la liste (n+1 ou n-1 par rapport à sa position) de manière simple (un
bouton
de commande par exemple...)

Merci pour votre aide! --
Hylcourt-Lefuret







Avatar
Gilbert
Bonjour,

Tu peux ajouter un champ NumOrdre à ta table, mettre 2 boutons sur ton
formulaire et utiliser le code suivant pour ces boutons

J'ai considéré que :
La colonne 0 de ta liste contient la clé de ta table
La colonne 1 contient le champ ajouté NumOrdre
A adapter si différent.
Il me semble que l'on doit pouvoir simplifier ce code, mais je n'ai pas
d'autre idée pour l'instant.
Ne pas oublier de trier ta liste sur le champ NumOrdre


Option Compare Database
Dim numordretmp As Long
Dim rst As DAO.Recordset

Private Sub Commande2_Click()

numordretmp = Me.Liste0.Column(1)
Set rst = CurrentDb.OpenRecordset(Me.Liste0.RowSource)
rst.FindFirst ("numordre=" & Me.Liste0.Column(1) - 1)
rst.Edit
If Not rst.NoMatch Then
rst!NumOrdre = -1
rst.Update
rst.FindFirst ("NumOrdre=" & Me.Liste0.Column(1))
rst.Edit
rst!NumOrdre = Me.Liste0.Column(1) - 1
rst.Update
rst.FindFirst ("NumOrdre=-1")
rst.Edit
rst!NumOrdre = numordretmp
rst.Update
Me.Liste0.Requery
End If
Set rst = Nothing
End Sub

Private Sub Commande3_Click()

numordretmp = Me.Liste0.Column(1)
Set rst = CurrentDb.OpenRecordset(Me.Liste0.RowSource)
rst.FindFirst ("numordre=" & Me.Liste0.Column(1) + 1)
If Not rst.NoMatch Then
rst.Edit
rst!NumOrdre = -1
rst.Update
rst.FindFirst ("numordre=" & Me.Liste0.Column(1))
rst.Edit
rst!NumOrdre = Me.Liste0.Column(1) + 1
rst.Update
rst.FindFirst ("numordre=-1")
rst.Edit
rst!NumOrdre = numordretmp
rst.Update
Me.Liste0.Requery
End If
Set rst = Nothing
End Sub


--
Cordialement,

Gilbert


"Hylcourt-Lefuret" a écrit dans
le message de news:
Bonjour à tous!

Voilà mon problème:
J'enregistre au fils de l'eau des fiches "évenements" relatives à un suivi
de dossier. Actuellement ces fiches sont classées chronologiquement au fur
et

à mesure de leur saisie.
Je souhaiterais pouvoir facilement "remonter" ou "descendre" une fiche
dans

la liste (n+1 ou n-1 par rapport à sa position) de manière simple (un
bouton

de commande par exemple...)

Merci pour votre aide! --
Hylcourt-Lefuret


Avatar
Hylcourt-Lefuret
Un grand merci à toi Gilbert pour ton aide, ç'est vraiment sympa !
Malheureusement j'ai "encore" un problème (sans doute du fait de ma
connaissance assez limitée en VBA)...
J'ai saisi le code comme indiqué mais lorsque je l'exécute j'ai un message
sur la première ligne "Me.Liste0.Column(1)" me disant:
"erreur de compilation
membre de méthode ou de données introuvable"
J'ai remplacé "Liste0" par le nom de mon formulaire qui est "FmPhase" Mais
fallait-il faire comme cela ?

Encore merci de ton aide

Hylcourt-Lefuret



Bonjour,

Tu peux ajouter un champ NumOrdre à ta table, mettre 2 boutons sur ton
formulaire et utiliser le code suivant pour ces boutons

J'ai considéré que :
La colonne 0 de ta liste contient la clé de ta table
La colonne 1 contient le champ ajouté NumOrdre
A adapter si différent.
Il me semble que l'on doit pouvoir simplifier ce code, mais je n'ai pas
d'autre idée pour l'instant.
Ne pas oublier de trier ta liste sur le champ NumOrdre


Option Compare Database
Dim numordretmp As Long
Dim rst As DAO.Recordset

Private Sub Commande2_Click()

numordretmp = Me.Liste0.Column(1)
Set rst = CurrentDb.OpenRecordset(Me.Liste0.RowSource)
rst.FindFirst ("numordre=" & Me.Liste0.Column(1) - 1)
rst.Edit
If Not rst.NoMatch Then
rst!NumOrdre = -1
rst.Update
rst.FindFirst ("NumOrdre=" & Me.Liste0.Column(1))
rst.Edit
rst!NumOrdre = Me.Liste0.Column(1) - 1
rst.Update
rst.FindFirst ("NumOrdre=-1")
rst.Edit
rst!NumOrdre = numordretmp
rst.Update
Me.Liste0.Requery
End If
Set rst = Nothing
End Sub

Private Sub Commande3_Click()

numordretmp = Me.Liste0.Column(1)
Set rst = CurrentDb.OpenRecordset(Me.Liste0.RowSource)
rst.FindFirst ("numordre=" & Me.Liste0.Column(1) + 1)
If Not rst.NoMatch Then
rst.Edit
rst!NumOrdre = -1
rst.Update
rst.FindFirst ("numordre=" & Me.Liste0.Column(1))
rst.Edit
rst!NumOrdre = Me.Liste0.Column(1) + 1
rst.Update
rst.FindFirst ("numordre=-1")
rst.Edit
rst!NumOrdre = numordretmp
rst.Update
Me.Liste0.Requery
End If
Set rst = Nothing
End Sub


--
Cordialement,

Gilbert


"Hylcourt-Lefuret" a écrit dans
le message de news:
Bonjour à tous!

Voilà mon problème:
J'enregistre au fils de l'eau des fiches "évenements" relatives à un suivi
de dossier. Actuellement ces fiches sont classées chronologiquement au fur
et

à mesure de leur saisie.
Je souhaiterais pouvoir facilement "remonter" ou "descendre" une fiche
dans

la liste (n+1 ou n-1 par rapport à sa position) de manière simple (un
bouton

de commande par exemple...)

Merci pour votre aide! --
Hylcourt-Lefuret







Avatar
Eric
Bonjour,

Gilbert parlait de zone de liste (ListBox).

Regardes la procédure proposée par Pierre(3stone) sur son site :
http://www.3stone.be/access/articles.php?lng=fr&pgS4
Je pense qu'elle devrait convenir à ton besoin car apparemment tu
souhaites déplacer (monter ou descendre) des enregistrements dans un
formulaire en continu.

Un grand merci à toi Gilbert pour ton aide, ç'est vraiment sympa !
Malheureusement j'ai "encore" un problème (sans doute du fait de ma
connaissance assez limitée en VBA)...
J'ai saisi le code comme indiqué mais lorsque je l'exécute j'ai un message
sur la première ligne "Me.Liste0.Column(1)" me disant:
"erreur de compilation
membre de méthode ou de données introuvable"
J'ai remplacé "Liste0" par le nom de mon formulaire qui est "FmPhase" Mais
fallait-il faire comme cela ?

Encore merci de ton aide

Hylcourt-Lefuret



Bonjour,

Tu peux ajouter un champ NumOrdre à ta table, mettre 2 boutons sur ton
formulaire et utiliser le code suivant pour ces boutons

J'ai considéré que :
La colonne 0 de ta liste contient la clé de ta table
La colonne 1 contient le champ ajouté NumOrdre
A adapter si différent.
Il me semble que l'on doit pouvoir simplifier ce code, mais je n'ai pas
d'autre idée pour l'instant.
Ne pas oublier de trier ta liste sur le champ NumOrdre


Option Compare Database
Dim numordretmp As Long
Dim rst As DAO.Recordset

Private Sub Commande2_Click()

numordretmp = Me.Liste0.Column(1)
Set rst = CurrentDb.OpenRecordset(Me.Liste0.RowSource)
rst.FindFirst ("numordre=" & Me.Liste0.Column(1) - 1)
rst.Edit
If Not rst.NoMatch Then
rst!NumOrdre = -1
rst.Update
rst.FindFirst ("NumOrdre=" & Me.Liste0.Column(1))
rst.Edit
rst!NumOrdre = Me.Liste0.Column(1) - 1
rst.Update
rst.FindFirst ("NumOrdre=-1")
rst.Edit
rst!NumOrdre = numordretmp
rst.Update
Me.Liste0.Requery
End If
Set rst = Nothing
End Sub

Private Sub Commande3_Click()

numordretmp = Me.Liste0.Column(1)
Set rst = CurrentDb.OpenRecordset(Me.Liste0.RowSource)
rst.FindFirst ("numordre=" & Me.Liste0.Column(1) + 1)
If Not rst.NoMatch Then
rst.Edit
rst!NumOrdre = -1
rst.Update
rst.FindFirst ("numordre=" & Me.Liste0.Column(1))
rst.Edit
rst!NumOrdre = Me.Liste0.Column(1) + 1
rst.Update
rst.FindFirst ("numordre=-1")
rst.Edit
rst!NumOrdre = numordretmp
rst.Update
Me.Liste0.Requery
End If
Set rst = Nothing
End Sub


--
Cordialement,

Gilbert


"Hylcourt-Lefuret" a écrit dans
le message de news:
Bonjour à tous!

Voilà mon problème:
J'enregistre au fils de l'eau des fiches "évenements" relatives à un suivi
de dossier. Actuellement ces fiches sont classées chronologiquement au fur
et

à mesure de leur saisie.
Je souhaiterais pouvoir facilement "remonter" ou "descendre" une fiche
dans

la liste (n+1 ou n-1 par rapport à sa position) de manière simple (un
bouton

de commande par exemple...)

Merci pour votre aide! --
Hylcourt-Lefuret






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Hylcourt-Lefuret
Bonsoir,

Un grand merci à Gilbert et Eric. Votre solution fonctionne à merveille!
Encore bravo à la communauté très active qui apporte une source
d'information d'un intérêt indéniable (surtout pour le presque néophyte que
je suis...)
--
Hylcourt-Lefuret



Bonjour,

Gilbert parlait de zone de liste (ListBox).

Regardes la procédure proposée par Pierre(3stone) sur son site :
http://www.3stone.be/access/articles.php?lng=fr&pgS4
Je pense qu'elle devrait convenir à ton besoin car apparemment tu
souhaites déplacer (monter ou descendre) des enregistrements dans un
formulaire en continu.

Un grand merci à toi Gilbert pour ton aide, ç'est vraiment sympa !
Malheureusement j'ai "encore" un problème (sans doute du fait de ma
connaissance assez limitée en VBA)...
J'ai saisi le code comme indiqué mais lorsque je l'exécute j'ai un message
sur la première ligne "Me.Liste0.Column(1)" me disant:
"erreur de compilation
membre de méthode ou de données introuvable"
J'ai remplacé "Liste0" par le nom de mon formulaire qui est "FmPhase" Mais
fallait-il faire comme cela ?

Encore merci de ton aide

Hylcourt-Lefuret



Bonjour,

Tu peux ajouter un champ NumOrdre à ta table, mettre 2 boutons sur ton
formulaire et utiliser le code suivant pour ces boutons

J'ai considéré que :
La colonne 0 de ta liste contient la clé de ta table
La colonne 1 contient le champ ajouté NumOrdre
A adapter si différent.
Il me semble que l'on doit pouvoir simplifier ce code, mais je n'ai pas
d'autre idée pour l'instant.
Ne pas oublier de trier ta liste sur le champ NumOrdre


Option Compare Database
Dim numordretmp As Long
Dim rst As DAO.Recordset

Private Sub Commande2_Click()

numordretmp = Me.Liste0.Column(1)
Set rst = CurrentDb.OpenRecordset(Me.Liste0.RowSource)
rst.FindFirst ("numordre=" & Me.Liste0.Column(1) - 1)
rst.Edit
If Not rst.NoMatch Then
rst!NumOrdre = -1
rst.Update
rst.FindFirst ("NumOrdre=" & Me.Liste0.Column(1))
rst.Edit
rst!NumOrdre = Me.Liste0.Column(1) - 1
rst.Update
rst.FindFirst ("NumOrdre=-1")
rst.Edit
rst!NumOrdre = numordretmp
rst.Update
Me.Liste0.Requery
End If
Set rst = Nothing
End Sub

Private Sub Commande3_Click()

numordretmp = Me.Liste0.Column(1)
Set rst = CurrentDb.OpenRecordset(Me.Liste0.RowSource)
rst.FindFirst ("numordre=" & Me.Liste0.Column(1) + 1)
If Not rst.NoMatch Then
rst.Edit
rst!NumOrdre = -1
rst.Update
rst.FindFirst ("numordre=" & Me.Liste0.Column(1))
rst.Edit
rst!NumOrdre = Me.Liste0.Column(1) + 1
rst.Update
rst.FindFirst ("numordre=-1")
rst.Edit
rst!NumOrdre = numordretmp
rst.Update
Me.Liste0.Requery
End If
Set rst = Nothing
End Sub


--
Cordialement,

Gilbert


"Hylcourt-Lefuret" a écrit dans
le message de news:
Bonjour à tous!

Voilà mon problème:
J'enregistre au fils de l'eau des fiches "évenements" relatives à un suivi
de dossier. Actuellement ces fiches sont classées chronologiquement au fur
et

à mesure de leur saisie.
Je souhaiterais pouvoir facilement "remonter" ou "descendre" une fiche
dans

la liste (n+1 ou n-1 par rapport à sa position) de manière simple (un
bouton

de commande par exemple...)

Merci pour votre aide! --
Hylcourt-Lefuret






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr