Aide - Recherche - Membres - Calendrier
Version complète : Access : tri nom + numéro
Trucs et astuces Express > Discussions Informatique > Microsoft Office 2003 / 2007 > Access
JIEF
Bonjour,
Dans une base est-il possible de trier alphabétiquement puis de changer la numérotation des fiches suivant l'ordre précédent?
Merci de m'informer.
ebuddy
CITATION(JIEF @ 06-06-2008 - 14:29) *
Bonjour,
Dans une base est-il possible de trier alphabétiquement puis de changer la numérotation des fiches suivant l'ordre précédent?
Merci de m'informer.


Humm oui, c'est possible de trier par ordre alphabétique en faisant un select avec un order by :

select * from nomtable [where (condition)][order by nomchamp (asc|desc)]

Je suis moins sur de la parti qui suis parce que je ne vois pas l'utilité de reaffecter des numéros a des lignes et aussi, ce que je vais te dire marche dans mysql donc il y a peut-être quelque difference avec du access. De plus si le champ numéroté est ta clé primaire tu vas devoir créer un genre de swap sinon tu vas avoir une erreure, du au fait que tu ne peux pas avoir deux fois la même clé, anyways...

Malheureusement je n'ai qu'une seul parti de la solution si tu veux le faire en une seule étape (je ne sais pas si c'est faisable) mais en faisant un script qui fait :

set @row = 0;
select @row:=@row+1 from nomtble order by nomchamps;

Donc si tu gardes toutes les donnée dans quelque part tu devrais etre capable d'updater tes champs. Si le set ne marche pas essaye :

declare @row int

select @row = 0
francishop
Bonjour,

Une table-->tbl_Essai-->3 champs :
Id-->NuméroAuto-->Incrément-->Clef primaire
ChampTexte-->Texte
Renuméroté-->Numérique-->Entier long

Une requête-->qryTrieDansOrdreChampTexte :
Si trie décroissant :
CODE
SELECT tbl_Essai.ChampTexte, tbl_Essai.Renuméroté
FROM tbl_Essai
ORDER BY tbl_Essai.ChampTexte DESC;

Nous désirons un trie croissant sur notre champ texte :
CODE
SELECT tbl_Essai.ChampTexte, tbl_Essai.Renuméroté
FROM tbl_Essai
ORDER BY tbl_Essai.ChampTexte;

Un formulaire, un bouton-->cmd_Renumeroter
Sur click-->Un peu de code :
CODE
Private Sub cmd_Renumeroter_Click()
Dim db As Database: Set db = CurrentDb
Dim r As Recordset: Set r = db.OpenRecordset("qryTrieDansOrdreChampTexte")
Dim i As Long: i = 1 'Ici on peut faire démarrer au N° de notre choix

    Do While Not r.EOF
        r.Edit
        r![Renuméroté] = i
        r.Update
        i = i + 1
        r.MoveNext
    Loop

   r.Close: Set r = Nothing
   db.Close: Set db = Nothing
    'Un petit coup d'oeil sur cette requête
  DoCmd.OpenQuery "qryTrieDansOrdreChampTexte", acNormal, acEdit
End Sub

Cordialement.
Ceci une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.