Trucs et astuces Express - L'aide informatique au bout des doigts!

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Access : tri nom + numéro
JIEF
posté 06-06-2008 - 13:29
Message #1


Membre


Groupe : Membres
Messages : 6
Inscrit : 24-11-2007
Membre n° 12 368



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.
Go to the top of the page
 
+Quote Post
ebuddy
posté 08-06-2008 - 0:41
Message #2


Membre


Groupe : Membres
Messages : 14
Inscrit : 02-06-2008
Membre n° 13 014



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
Go to the top of the page
 
+Quote Post
francishop
posté 08-06-2008 - 13:10
Message #3


Membre


Groupe : Membres
Messages : 21
Inscrit : 14-05-2008
Lieu : Devant l'écran
Membre n° 12 982



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.


--------------------
Le peu que je sais, c'est à mon ignorance que je le dois.
...............................................................................Sacha Guitry
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 

RSS Version bas débit Nous sommes le : 19-11-2008 - 14:04
annuaire