Objectifs : Réalisation des tâches suivantes : T2.4, T2.8.

T2.4 Affectation des entraîneurs comme membre du jury: Cette tâche doit permettre la saisie, la modification et la suppression de l’affectation d’un entraîneur à une compétition à partir d’un formulaire. Il faudra réaliser la maquette de ce formulaire, le faire valider par le chef de projet avant de commencer le codage. Prévoir tous les contrôles nécessaires.

Voici le formulaire qui comprend toutes les tâches :

On sélectionne d'abord le numéro de la compétition dans la liste déroulante NUM_COMPETITION et appuyons sur le Bouton recherché afin d'afficher les entraineurs non jury dans la liste ENTRAINEUR et les ENTRAINEUR qui sont JURY dans la liste JURY

Code VBA du bouton rechercher

Private Sub RechercherClick()
Dim bdComp As Database
Dim rsComp As Recordset
Dim req As String
Dim req2 As String
Set bdComp = CurrentDb
requereryliste
End Sub

Afin d'affecter une entraineur à un jury ou de le supprimer de son poste de jury, nous avons créé un évènement sur click

Code VBA sur la Liste Entraineur afin de l'affecter à un jury
Private Sub ListeEntraineurClick()
Dim bdComp As Database
Dim rsjuge As Recordset
Set bdComp = CurrentDb
Dim req
Dim rsmaxj As Recordset
req = “select max(numjury) as numJ from juge where num_competition=” & ListeComp
Set rsmaxj = bdComp.OpenRecordset(req)
Dim numJ
numJ = 0
If IsNull(rsmaxj!numJ) = False Then numJ = rsmaxj!numJ
Set rsjuge = bdComp.OpenRecordset(“juge”, DBOPENDYNASET)
rsjuge.AddNew
rsjuge!NUMENTRAINEUR = ListeEntraineur.Value
rsjuge!NUMCOMPETITION = ListeComp.Value
rsjuge!NUM_JURY = numJ + 1
rsjuge.Update
ListeEntraineur.Requery
ListeJury.Requery
End Sub

Code VBA sur la Liste Jury afin de le supprimer du jury

Private Sub ListeJuryClick()
Dim bdComp As Database
Dim rsentr As Recordset
Set bdComp = CurrentDb
CurrentDb.Execute “DELETE * FROM JUGE WHERE NUMCOMPETITION=” & ListeComp & “ AND NUM_ENTRAINEUR=” & ListeJury.Column(1)
ListeEntraineur.Requery
ListeJury.Requery
End Sub

T2.8 Édition d’un état récapitulatif de la compétition: Cette tâche doit permettre l’affichage d’un état récapitulatif. Ce document doit faire apparaître :

le nombre de compétiteurs ayant obtenu un total inférieur à 24

le nombre de compétiteurs ayant obtenu un total compris entre 24 et 27

le nombre de compétiteurs ayant obtenu un total supérieur à 27

la moyenne des notes proposées par juge.

On peut voir la liste de notes avec les notes de chaque participants à la compétition. Dans la zone de liste nb comp<24 il y a 2 lignes donc deux participants qui ont une notes <24 Voici la requête VBA associé SELECT Count(MEMBRE.NOMMEMBRE) AS CompteDeNOMMEMBRE
FROM MEMBRE INNER JOIN [NOTE] ON MEMBRE.[NUMLICENCE] = NOTE.[NUMLICENCE]
GROUP BY MEMBRE.NOM_MEMBRE
HAVING 1) (Sum([NOTE].[NOTE])-Max([note])-Min([note] <24));

Dans la zone de liste nb comp entre 24 et 27 Voici la requête VBA associé SELECT Count(MEMBRE.NOMMEMBRE) AS CompteDeNOMMEMBRE
FROM MEMBRE INNER JOIN [NOTE] ON MEMBRE.[NUMLICENCE] = NOTE.[NUMLICENCE]
GROUP BY MEMBRE.NOM_MEMBRE
HAVING 1)Between 24 And 27));

Dans la zone de liste nb comp>27 il y a 2 lignes donc deux participants qui ont une notes >27
Voici la requête VBA associé
SELECT Count(MEMBRE.NOMMEMBRE) AS CompteDeNOMMEMBRE
FROM MEMBRE INNER JOIN [NOTE] ON MEMBRE.[NUMLICENCE] = NOTE.[NUMLICENCE]
GROUP BY MEMBRE.NOM_MEMBRE
HAVING 1)>27));

Nous n'avons pas réussis a créer une requête exacte afin de faire ce travail donc la requête que nous avons créé permet d'afficher un certain nombre de ligne qui est la valeur du résultat