Fonction Rang()

PatrickYohann Messages postés 10 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 7 juin 2010 - 7 juin 2010 à 22:04
PatrickYohann Messages postés 10 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 7 juin 2010 - 7 juin 2010 à 23:17
Bonjour à tous.
Je ne suis pas un As en programmation et j'ai besoin de votre aide pour réaliser en vba une fonction équivalente à la fonction Rang()d'Excel.
Il s'agit d'une table avec un champ "Noms_", un champ "Notes", un champ "Classe" et un champ "Rang". Comment afficher devant chaque nom le rang en fonction de la Note obtenue et de la classe de l'élève ?
On pourrait très bien utiliser la fonction DCount (CpteDom)dans une requête pour obtenir ce résultat, mais je voudrais créer une fonction Rang() où le nom de la table sera passé en paramètre et où les rangs seront calculés puis affichés dans la colonne "Rang" de la table.
Avec DCount dans une requête, on a:

DCount("*","MaTable","[Note] > " & Replace([Note],",",".") & " and [Classe] = '" & [Classe] & " ' ")+ 1.

Comment faire cette fonction Rang()?
Merci de votre aide.

1 réponse

PatrickYohann Messages postés 10 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 7 juin 2010
7 juin 2010 à 23:17
J'ai bien trouvé ceci:

Function Rang()
Dim Scolarite_p As Database, I As Integer, table As Recordset, wrang As String
Set Scolarite_p = CurrentDb
Set table = Scolarite_p.OpenRecordset("T_ELEVES")

table.MoveFirst
wrang DCount("*", "T_ELEVES", "[Moyenne]> " & Replace(table![Moyenne], ",", ".") & " and [Classe] '" & table![Classe] & "'") + 1
table.Edit
table!Rang = wrang
table.Update

Do While Not table.EOF
table.MoveNext

wrang DCount("*", "T_ELEVES", "[Moyenne]> " & Replace(table![Moyenne], ",", ".") & " and [Classe] '" & table![Classe] & "'") + 1
table.Edit
table!Rang = wrang
table.Update

Loop
table.Close

End Function


A l'exécution, les rangs sont bien affichés puis il y a un message d'erreur qui dit ceci:

Erreur d'Exécution '3021'
Aucun enregistrement en cours.

Merci de m'aider
0
Rejoignez-nous