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
| Private Sub cmd_matieres_calculerMM_Click()
' 2020-08-24 calculer la moyenne MM pour une classe d'élèves
' pour toutes les matières (avec an moins une note)
' avec des notes MD et CP comprises entre 2 dates
' Hypothèses:
' 1 éléve appartient à une classe
' 1 devoir est appartient à une classe
' certains élèves peuvent manquer un devoir, une composition
' le calcul peut se faire sur plusieurs devoirs, sur plusieurs compositions (même s'il n'y a qu'une seule CP en principe)
Dim s1 As String, strSql As String
Dim db1 As DAO.Database, rs1 As DAO.Recordset, rs2 As DAO.Recordset, rs3 As DAO.Recordset
If IsNull(Me.classe_num) Then
MsgBox "vous devez saisir une classe", vbInformation
Exit Sub
End If
If IsNull(Me.date_deb) Or IsNull(Me.date_fin) Then
MsgBox "vous devez saisir une date début et une date de fin", vbInformation
Exit Sub
End If
' déclarer une instance de l'application
Set db1 = CurrentDb
' élèves de la classe
strSql = "SELECT eleve_id, eleve_nom FROM R_classe_eleve" _
& " WHERE Classe_id= " & Me.classe_num _
& " GROUP BY eleve_id, eleve_nom"
Set rs2 = db1.OpenRecordset(strSql, dbOpenSnapshot)
If rs2.RecordCount = 0 Then
MsgBox "Il n'y a aucun élève dans cette classe", vbInformation
Exit Sub
End If
' Boucle sur les matières avec devoirs valides dans cette période
s1 = "classe_id =" & Me.classe_num _
& " AND format(devoir_date,'yyyymmdd') >= '" & Format(Me.date_deb, "yyyymmdd") & "'" _
& " AND format(devoir_date,'yyyymmdd') <= '" & Format(Me.date_fin, "yyyymmdd") & "'" |
Partager