OVH Cloud OVH Cloud

premiers

1 réponse
Avatar
Manux
Bonjour

Comment créer une table qui reprenne les 5 premieres valeurs dans un ordre
décroissant, et ne prendre que les 5 premieres, meme si la valeur de la
sixième est identique à la cinquième.
Exemple : 20, 18, 17, 12, 12, 12, 10,
La table doit retenir 20, 18, 17, 12 ,12 et ensuite y faire la somme

Merci de votre aide.

1 réponse

Avatar
Nobodyisperfect
Salut Manux,

Tu fais une requête avec un tri décroissant sur la valeur voulue, puis
par code VBA, tu ne prends que les 5 premiers enregistrements que tu mets
dans la table voulue !!.

Ex :
Requete1 (C'est la requête qui fait le tri décroissant)

TableFinale (C'est la table qui recevra tes 5 premiers enregistrements

Code VBA (DAO)

Sub toto()
Dim MaDatabase as Database
Dim MonRst as Recorset
Dim MaTableFinale as Recordset
Dim Compteur as Integer

Set MaDatabase = CurrentDb
Set MonRst = MaDatabase.OpenRecordset("Requete1")
Set MaTableFinale = MaDatabase.OpenRecorset("TableFinale")

With MonRst
Compteur=1
While Compteur <= 5
.Edit
MaTableFinale.AddNew
MaTableFinale!Champ1 = !Champ1 (!Champ1 correspondant au champ1 de
ta requete "Requete1")
MaTableFinale!Champ2 = !Champ2
MaTableFinale!Champ3 = !Champ3
etc.......
MaTableFinale.Update
.Update
.MoveNext
Compteur = Compteur+1
Wend

Set MonRst = Nothing
Set MaTableFinale = Nothing
MaDatabase.Close
End Sub

"Manux" wrote in message
news:
Bonjour

Comment créer une table qui reprenne les 5 premieres valeurs dans un ordre
décroissant, et ne prendre que les 5 premieres, meme si la valeur de la
sixième est identique à la cinquième.
Exemple : 20, 18, 17, 12, 12, 12, 10,
La table doit retenir 20, 18, 17, 12 ,12 et ensuite y faire la somme

Merci de votre aide.