J'ai crée une Table "Noms" avec 2 champs :
* Nom : Texte 50 caractères - sans doublons
* Tri : Entier Long - sans doublons
Puis une requête "Noms Requête" qui trie les noms par ordre croissant
Puis un formulaire avec :
* une liste "L_Noms" basée sur la requête "Noms Requête"
* un bouton "Nouveau" qui ajoute un nouveau nom dans la liste et qui affecte
la valeur par défaut au Tri =MaxDom("[Tri]","[Noms]")+1
* un bouton "Monter"
Exemple de la liste :
Nom Tri
aaa 1
bbb 2
ccc 3
ddd 4
...
Mon curseur étant actif sur "ccc" tri n°3, j'aimerais en cliquant sur le
bouton "Monter" passer le tri de "ccc" à 2 et celui de "bbb" à 3 afin que
"ccc" se positionne avant "bbb".
Je dois donc en VBA aller modifier les Tris dans la table "Noms"(sachant que
le champ Tri n’accepte pas les doublons)
Cet exemple simple me permettra de savoir comment modifier le tri d'éléments
d'une liste ou formulaires ou états.
Quelqu'un peut-il me donner le code VBA nécessaire ou une autre méthode pour
réaliser cette action.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric
Bonjour Emilie,
Avec du SQL par exemple, ça conviendrait ?
Private Sub cmdMonter_Click() Dim tmp1 As Long, tmp2 As Long, strSQL As String If Me.Liste_Noms.ItemsSelected.Count = 0 Then MsgBox "Aucune sélection - Abandon" Exit Sub ElseIf Me.Liste_Noms.ListIndex = 0 Then MsgBox "C'est le 1er - Abandon" Exit Sub Else tmp1 = CLng(Me.Liste_Noms.Column(1)) tmp2 = DMax("Tri", "Noms") + 1 strSQL = "Update Noms Set Tri =" & tmp2 & " where Tri = " & tmp1 - 1 DoCmd.RunSQL strSQL strSQL = "Update Noms Set Tri =" & tmp1 - 1 & " where Tri = " & tmp1 DoCmd.RunSQL strSQL strSQL = "Update Noms Set Tri =" & tmp1 & " where Tri = " & tmp2 DoCmd.RunSQL strSQL Me.Liste_Noms.Requery End If End Sub
Bonjour à tous
J'ai crée une Table "Noms" avec 2 champs : * Nom : Texte 50 caractères - sans doublons * Tri : Entier Long - sans doublons
Puis une requête "Noms Requête" qui trie les noms par ordre croissant
Puis un formulaire avec : * une liste "L_Noms" basée sur la requête "Noms Requête" * un bouton "Nouveau" qui ajoute un nouveau nom dans la liste et qui affecte la valeur par défaut au Tri =MaxDom("[Tri]","[Noms]")+1 * un bouton "Monter"
Exemple de la liste : Nom Tri aaa 1 bbb 2 ccc 3 ddd 4 ...
Mon curseur étant actif sur "ccc" tri n°3, j'aimerais en cliquant sur le bouton "Monter" passer le tri de "ccc" à 2 et celui de "bbb" à 3 afin que "ccc" se positionne avant "bbb".
Je dois donc en VBA aller modifier les Tris dans la table "Noms"(sachant que le champ Tri n’accepte pas les doublons)
Cet exemple simple me permettra de savoir comment modifier le tri d'éléments d'une liste ou formulaires ou états.
Quelqu'un peut-il me donner le code VBA nécessaire ou une autre méthode pour réaliser cette action.
Par avance merci.
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Emilie,
Avec du SQL par exemple, ça conviendrait ?
Private Sub cmdMonter_Click()
Dim tmp1 As Long, tmp2 As Long, strSQL As String
If Me.Liste_Noms.ItemsSelected.Count = 0 Then
MsgBox "Aucune sélection - Abandon"
Exit Sub
ElseIf Me.Liste_Noms.ListIndex = 0 Then
MsgBox "C'est le 1er - Abandon"
Exit Sub
Else
tmp1 = CLng(Me.Liste_Noms.Column(1))
tmp2 = DMax("Tri", "Noms") + 1
strSQL = "Update Noms Set Tri =" & tmp2 & " where Tri = " &
tmp1 - 1
DoCmd.RunSQL strSQL
strSQL = "Update Noms Set Tri =" & tmp1 - 1 & " where Tri = " &
tmp1
DoCmd.RunSQL strSQL
strSQL = "Update Noms Set Tri =" & tmp1 & " where Tri = " & tmp2
DoCmd.RunSQL strSQL
Me.Liste_Noms.Requery
End If
End Sub
Bonjour à tous
J'ai crée une Table "Noms" avec 2 champs :
* Nom : Texte 50 caractères - sans doublons
* Tri : Entier Long - sans doublons
Puis une requête "Noms Requête" qui trie les noms par ordre croissant
Puis un formulaire avec :
* une liste "L_Noms" basée sur la requête "Noms Requête"
* un bouton "Nouveau" qui ajoute un nouveau nom dans la liste et qui affecte
la valeur par défaut au Tri =MaxDom("[Tri]","[Noms]")+1
* un bouton "Monter"
Exemple de la liste :
Nom Tri
aaa 1
bbb 2
ccc 3
ddd 4
...
Mon curseur étant actif sur "ccc" tri n°3, j'aimerais en cliquant sur le
bouton "Monter" passer le tri de "ccc" à 2 et celui de "bbb" à 3 afin que
"ccc" se positionne avant "bbb".
Je dois donc en VBA aller modifier les Tris dans la table "Noms"(sachant que
le champ Tri n’accepte pas les doublons)
Cet exemple simple me permettra de savoir comment modifier le tri d'éléments
d'une liste ou formulaires ou états.
Quelqu'un peut-il me donner le code VBA nécessaire ou une autre méthode pour
réaliser cette action.
Par avance merci.
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Private Sub cmdMonter_Click() Dim tmp1 As Long, tmp2 As Long, strSQL As String If Me.Liste_Noms.ItemsSelected.Count = 0 Then MsgBox "Aucune sélection - Abandon" Exit Sub ElseIf Me.Liste_Noms.ListIndex = 0 Then MsgBox "C'est le 1er - Abandon" Exit Sub Else tmp1 = CLng(Me.Liste_Noms.Column(1)) tmp2 = DMax("Tri", "Noms") + 1 strSQL = "Update Noms Set Tri =" & tmp2 & " where Tri = " & tmp1 - 1 DoCmd.RunSQL strSQL strSQL = "Update Noms Set Tri =" & tmp1 - 1 & " where Tri = " & tmp1 DoCmd.RunSQL strSQL strSQL = "Update Noms Set Tri =" & tmp1 & " where Tri = " & tmp2 DoCmd.RunSQL strSQL Me.Liste_Noms.Requery End If End Sub
Bonjour à tous
J'ai crée une Table "Noms" avec 2 champs : * Nom : Texte 50 caractères - sans doublons * Tri : Entier Long - sans doublons
Puis une requête "Noms Requête" qui trie les noms par ordre croissant
Puis un formulaire avec : * une liste "L_Noms" basée sur la requête "Noms Requête" * un bouton "Nouveau" qui ajoute un nouveau nom dans la liste et qui affecte la valeur par défaut au Tri =MaxDom("[Tri]","[Noms]")+1 * un bouton "Monter"
Exemple de la liste : Nom Tri aaa 1 bbb 2 ccc 3 ddd 4 ...
Mon curseur étant actif sur "ccc" tri n°3, j'aimerais en cliquant sur le bouton "Monter" passer le tri de "ccc" à 2 et celui de "bbb" à 3 afin que "ccc" se positionne avant "bbb".
Je dois donc en VBA aller modifier les Tris dans la table "Noms"(sachant que le champ Tri n’accepte pas les doublons)
Cet exemple simple me permettra de savoir comment modifier le tri d'éléments d'une liste ou formulaires ou états.
Quelqu'un peut-il me donner le code VBA nécessaire ou une autre méthode pour réaliser cette action.
Par avance merci.
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
3stone
Bonjour,
"Emilie" | J'ai crée une Table "Noms" avec 2 champs : | * Nom : Texte 50 caractères - sans doublons | * Tri : Entier Long - sans doublons <snip>
Il te manque une clé primaire dans ta table...
Mais pour ton problème: Ce que tu souhaite, c'est d'avoir un système permettant un tri qui ne repose sur aucun raisonnement ! Pour pouvoir trié "a vue de nez" et "au pif"...
Cela ne s'appelle pa un tri ;-)
Il serait plus raisonnable, soit d'incorporer dans la table, soit de lier par une requête, les données qui permettraient de décrire le tri souhaité.
A moins que tu ne doive simplement trier la liste sur le nom ??
"Emilie"
| J'ai crée une Table "Noms" avec 2 champs :
| * Nom : Texte 50 caractères - sans doublons
| * Tri : Entier Long - sans doublons
<snip>
Il te manque une clé primaire dans ta table...
Mais pour ton problème:
Ce que tu souhaite, c'est d'avoir un système permettant un tri qui ne repose
sur aucun raisonnement ! Pour pouvoir trié "a vue de nez" et "au pif"...
Cela ne s'appelle pa un tri ;-)
Il serait plus raisonnable, soit d'incorporer dans la table, soit de lier par
une requête, les données qui permettraient de décrire le tri souhaité.
A moins que tu ne doive simplement trier la liste sur le nom ??
"Emilie" | J'ai crée une Table "Noms" avec 2 champs : | * Nom : Texte 50 caractères - sans doublons | * Tri : Entier Long - sans doublons <snip>
Il te manque une clé primaire dans ta table...
Mais pour ton problème: Ce que tu souhaite, c'est d'avoir un système permettant un tri qui ne repose sur aucun raisonnement ! Pour pouvoir trié "a vue de nez" et "au pif"...
Cela ne s'appelle pa un tri ;-)
Il serait plus raisonnable, soit d'incorporer dans la table, soit de lier par une requête, les données qui permettraient de décrire le tri souhaité.
A moins que tu ne doive simplement trier la liste sur le nom ??
Bon, j'aurais du shunter le post ;-) Mais pour ne pas perdre l'honneur, je dirai qu'il ne s'agit pas de tri stricto sensu mais de critères de classement dont le rang peut, dans un futur immédiat pour Emilie, venir à être modifié !
Mais pour ton problème: Ce que tu souhaite, c'est d'avoir un système permettant un tri qui ne repose sur aucun raisonnement ! Pour pouvoir trié "a vue de nez" et "au pif"...
Cela ne s'appelle pa un tri ;-)
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Pierre,
Bon, j'aurais du shunter le post ;-)
Mais pour ne pas perdre l'honneur, je dirai qu'il ne s'agit pas de tri
stricto sensu mais de critères de classement dont le rang peut, dans un
futur immédiat pour Emilie, venir à être modifié !
Mais pour ton problème:
Ce que tu souhaite, c'est d'avoir un système permettant un tri qui ne repose
sur aucun raisonnement ! Pour pouvoir trié "a vue de nez" et "au pif"...
Cela ne s'appelle pa un tri ;-)
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bon, j'aurais du shunter le post ;-) Mais pour ne pas perdre l'honneur, je dirai qu'il ne s'agit pas de tri stricto sensu mais de critères de classement dont le rang peut, dans un futur immédiat pour Emilie, venir à être modifié !
Mais pour ton problème: Ce que tu souhaite, c'est d'avoir un système permettant un tri qui ne repose sur aucun raisonnement ! Pour pouvoir trié "a vue de nez" et "au pif"...
Cela ne s'appelle pa un tri ;-)
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
3stone
Salut,
"Eric" | Bon, j'aurais du shunter le post ;-)
Non, absolument pas ! Tu as donné ton avis, moi le mien... c'est ce qui fait la richesse d'un forum.
Ceci dit : Depuis que je traîne sur ce forum, j'ai attrapé un nez pour les questions disons "spéciales" ;-) Répondre simplement dans le sens de la question, fait que trop souvent le demandeur s'enfoncer dans une construction ou raisonnement déjà bancal. Et dans ce cas, c'est dans ma nature, je rame à contre-sens :o)))
Mais grâce aux réponses multiples, le demandeur fait *son* choix !
Tout le monde doit pouvoir s'exprimer, il faut juste éviter les affirmations totalement fausses ou dangereuses!
Et se dire qu'en général, il n'y a pas LA solution, parce qu'il n'y à pas LE problème.
Non, absolument pas !
Tu as donné ton avis, moi le mien... c'est ce qui fait la richesse d'un forum.
Ceci dit :
Depuis que je traîne sur ce forum, j'ai attrapé un nez pour les questions disons "spéciales" ;-)
Répondre simplement dans le sens de la question, fait que trop souvent le demandeur
s'enfoncer dans une construction ou raisonnement déjà bancal.
Et dans ce cas, c'est dans ma nature, je rame à contre-sens :o)))
Mais grâce aux réponses multiples, le demandeur fait *son* choix !
Tout le monde doit pouvoir s'exprimer, il faut juste éviter les affirmations
totalement fausses ou dangereuses!
Et se dire qu'en général, il n'y a pas LA solution, parce qu'il n'y à pas LE problème.
Non, absolument pas ! Tu as donné ton avis, moi le mien... c'est ce qui fait la richesse d'un forum.
Ceci dit : Depuis que je traîne sur ce forum, j'ai attrapé un nez pour les questions disons "spéciales" ;-) Répondre simplement dans le sens de la question, fait que trop souvent le demandeur s'enfoncer dans une construction ou raisonnement déjà bancal. Et dans ce cas, c'est dans ma nature, je rame à contre-sens :o)))
Mais grâce aux réponses multiples, le demandeur fait *son* choix !
Tout le monde doit pouvoir s'exprimer, il faut juste éviter les affirmations totalement fausses ou dangereuses!
Et se dire qu'en général, il n'y a pas LA solution, parce qu'il n'y à pas LE problème.
Merci pour vos réponses et commentaires. Ca me permettra de tenir compte de vos remarques et de mieux formuler mes questions. La réponse de spécialiste est toujours la bienvenue.
Merci donc à tous les deux.
Bonjour Emilie,
Avec du SQL par exemple, ça conviendrait ?
Private Sub cmdMonter_Click() Dim tmp1 As Long, tmp2 As Long, strSQL As String If Me.Liste_Noms.ItemsSelected.Count = 0 Then MsgBox "Aucune sélection - Abandon" Exit Sub ElseIf Me.Liste_Noms.ListIndex = 0 Then MsgBox "C'est le 1er - Abandon" Exit Sub Else tmp1 = CLng(Me.Liste_Noms.Column(1)) tmp2 = DMax("Tri", "Noms") + 1 strSQL = "Update Noms Set Tri =" & tmp2 & " where Tri = " & tmp1 - 1 DoCmd.RunSQL strSQL strSQL = "Update Noms Set Tri =" & tmp1 - 1 & " where Tri = " & tmp1 DoCmd.RunSQL strSQL strSQL = "Update Noms Set Tri =" & tmp1 & " where Tri = " & tmp2 DoCmd.RunSQL strSQL Me.Liste_Noms.Requery End If End Sub
Bonjour à tous
J'ai crée une Table "Noms" avec 2 champs : * Nom : Texte 50 caractères - sans doublons * Tri : Entier Long - sans doublons
Puis une requête "Noms Requête" qui trie les noms par ordre croissant
Puis un formulaire avec : * une liste "L_Noms" basée sur la requête "Noms Requête" * un bouton "Nouveau" qui ajoute un nouveau nom dans la liste et qui affecte la valeur par défaut au Tri =MaxDom("[Tri]","[Noms]")+1 * un bouton "Monter"
Exemple de la liste : Nom Tri aaa 1 bbb 2 ccc 3 ddd 4 ...
Mon curseur étant actif sur "ccc" tri n°3, j'aimerais en cliquant sur le bouton "Monter" passer le tri de "ccc" à 2 et celui de "bbb" à 3 afin que "ccc" se positionne avant "bbb".
Je dois donc en VBA aller modifier les Tris dans la table "Noms"(sachant que le champ Tri n’accepte pas les doublons)
Cet exemple simple me permettra de savoir comment modifier le tri d'éléments d'une liste ou formulaires ou états.
Quelqu'un peut-il me donner le code VBA nécessaire ou une autre méthode pour réaliser cette action.
Par avance merci.
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Oui c'est OK avec du SQL.
Merci pour vos réponses et commentaires.
Ca me permettra de tenir compte de vos remarques et de mieux formuler mes
questions. La réponse de spécialiste est toujours la bienvenue.
Merci donc à tous les deux.
Bonjour Emilie,
Avec du SQL par exemple, ça conviendrait ?
Private Sub cmdMonter_Click()
Dim tmp1 As Long, tmp2 As Long, strSQL As String
If Me.Liste_Noms.ItemsSelected.Count = 0 Then
MsgBox "Aucune sélection - Abandon"
Exit Sub
ElseIf Me.Liste_Noms.ListIndex = 0 Then
MsgBox "C'est le 1er - Abandon"
Exit Sub
Else
tmp1 = CLng(Me.Liste_Noms.Column(1))
tmp2 = DMax("Tri", "Noms") + 1
strSQL = "Update Noms Set Tri =" & tmp2 & " where Tri = " &
tmp1 - 1
DoCmd.RunSQL strSQL
strSQL = "Update Noms Set Tri =" & tmp1 - 1 & " where Tri = " &
tmp1
DoCmd.RunSQL strSQL
strSQL = "Update Noms Set Tri =" & tmp1 & " where Tri = " & tmp2
DoCmd.RunSQL strSQL
Me.Liste_Noms.Requery
End If
End Sub
Bonjour à tous
J'ai crée une Table "Noms" avec 2 champs :
* Nom : Texte 50 caractères - sans doublons
* Tri : Entier Long - sans doublons
Puis une requête "Noms Requête" qui trie les noms par ordre croissant
Puis un formulaire avec :
* une liste "L_Noms" basée sur la requête "Noms Requête"
* un bouton "Nouveau" qui ajoute un nouveau nom dans la liste et qui affecte
la valeur par défaut au Tri =MaxDom("[Tri]","[Noms]")+1
* un bouton "Monter"
Exemple de la liste :
Nom Tri
aaa 1
bbb 2
ccc 3
ddd 4
...
Mon curseur étant actif sur "ccc" tri n°3, j'aimerais en cliquant sur le
bouton "Monter" passer le tri de "ccc" à 2 et celui de "bbb" à 3 afin que
"ccc" se positionne avant "bbb".
Je dois donc en VBA aller modifier les Tris dans la table "Noms"(sachant que
le champ Tri n’accepte pas les doublons)
Cet exemple simple me permettra de savoir comment modifier le tri d'éléments
d'une liste ou formulaires ou états.
Quelqu'un peut-il me donner le code VBA nécessaire ou une autre méthode pour
réaliser cette action.
Par avance merci.
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci pour vos réponses et commentaires. Ca me permettra de tenir compte de vos remarques et de mieux formuler mes questions. La réponse de spécialiste est toujours la bienvenue.
Merci donc à tous les deux.
Bonjour Emilie,
Avec du SQL par exemple, ça conviendrait ?
Private Sub cmdMonter_Click() Dim tmp1 As Long, tmp2 As Long, strSQL As String If Me.Liste_Noms.ItemsSelected.Count = 0 Then MsgBox "Aucune sélection - Abandon" Exit Sub ElseIf Me.Liste_Noms.ListIndex = 0 Then MsgBox "C'est le 1er - Abandon" Exit Sub Else tmp1 = CLng(Me.Liste_Noms.Column(1)) tmp2 = DMax("Tri", "Noms") + 1 strSQL = "Update Noms Set Tri =" & tmp2 & " where Tri = " & tmp1 - 1 DoCmd.RunSQL strSQL strSQL = "Update Noms Set Tri =" & tmp1 - 1 & " where Tri = " & tmp1 DoCmd.RunSQL strSQL strSQL = "Update Noms Set Tri =" & tmp1 & " where Tri = " & tmp2 DoCmd.RunSQL strSQL Me.Liste_Noms.Requery End If End Sub
Bonjour à tous
J'ai crée une Table "Noms" avec 2 champs : * Nom : Texte 50 caractères - sans doublons * Tri : Entier Long - sans doublons
Puis une requête "Noms Requête" qui trie les noms par ordre croissant
Puis un formulaire avec : * une liste "L_Noms" basée sur la requête "Noms Requête" * un bouton "Nouveau" qui ajoute un nouveau nom dans la liste et qui affecte la valeur par défaut au Tri =MaxDom("[Tri]","[Noms]")+1 * un bouton "Monter"
Exemple de la liste : Nom Tri aaa 1 bbb 2 ccc 3 ddd 4 ...
Mon curseur étant actif sur "ccc" tri n°3, j'aimerais en cliquant sur le bouton "Monter" passer le tri de "ccc" à 2 et celui de "bbb" à 3 afin que "ccc" se positionne avant "bbb".
Je dois donc en VBA aller modifier les Tris dans la table "Noms"(sachant que le champ Tri n’accepte pas les doublons)
Cet exemple simple me permettra de savoir comment modifier le tri d'éléments d'une liste ou formulaires ou états.
Quelqu'un peut-il me donner le code VBA nécessaire ou une autre méthode pour réaliser cette action.
Par avance merci.
-- A+ Eric http://users.skynet.be/mpfa/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr