Bonsoir membres du forum,
Finalement, j'adopte le code suivant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 ' ++++ Fonct. pour Générer le RANG d'un ELEVE pour une COMPOSITION dans une Classe Arabe Public Sub RangClasseCompoArabe(AnneeScol As String, claSar As String, Nat As Long) Dim db As Database Dim rst As Recordset Dim sql As String Dim i As Integer Dim j As Integer Dim K As Integer Dim Moy As Single Set db = CurrentDb sql = "select * from INFOS_COMPOSITION_ARABE where anscol = '" & AnneeScol & "' and ClasseArabe = '" & claSar & "' and CompoArabe = " & Nat & " order by MoyenneCompo desc ;" Set rst = db.OpenRecordset(sql) If Not rst.EOF Then rst.MoveLast rst.MoveFirst 'bolEx = True i = 1 K = 1 Do While Not rst.EOF rst.Edit If rst.Fields("Statut") = "Classé" Then 'L'élève est classé If i = 1 Then If GenreEleve(rst.Fields("mle_Eleve")) = "Masculin" Then rst.Fields("Classement") = i & "er" Else rst.Fields("Classement") = i & "ère" End If Else If Moy = rst.Fields("MoyenneCompo") Then If K = 1 Then 'Traitement du 1er Ex-Equo j = i - 1 rst.Fields("Classement") = j & "è ex." K = K + 1 Else rst.Fields("Classement") = j & "è ex." End If Else K = 1 rst.Fields("Classement") = i & "è" End If End If rst.Update Moy = rst.Fields("MoyenneCompo") i = i + 1 rst.MoveNext Else 'L'élève n'est pas classé rst.Fields("Classement") = "NC" rst.Update rst.MoveNext End If Loop End If rst.Close Set rst = Nothing End Sub
Cordialement.
Partager