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.
Page 1 sur 1
Access : tri nom + numéro
#2
Posté 08 juin 2008 - 12:41
CITATION(JIEF @ 06-06-2008 - 14:29) <{POST_SNAPBACK}>
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.
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
#3
Posté 08 juin 2008 - 01:10
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 :
Nous désirons un trie croissant sur notre champ texte :
Un formulaire, un bouton-->cmd_Renumeroter
Sur click-->Un peu de code :
Cordialement.
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;
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;
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
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
...............................................................................Sacha Guitry
Page 1 sur 1


Connexion
Inscription
Aide
Retour en haut
Multi-citation