====== Introduction ======
Mission : **4**
Objectifs : Réalisation des tâches suivantes : T2.1, T2.2.
* T2.1 Gestion des compétitions : Cette tâche doit permettre la création, la modification et la suppression d’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.
* T2.2 Édition du calendrier des compétitions pour la saison en cours. Cette tâche doit permettre l’affichage du calendrier. Le document souhaité devra présenter le détail des compétitions (date et lieu) triées par date croissante.
====== Compte rendu ======
===== Interface =====
==== Formulaire d'ajout ====
{{ :ppe2.1:equipe4:form_ajout.png?nolink&450 |}}
Ce formulaire est composé d'une liste des clubs (//lst_Club//), d'un champ de date (//Txt_Date//), et de deux boutons : Ajouter (//Cmd_Ajouter//) et Fermer (//Cmd_Fermer//). Le bouton Ajouter est verrouillé tant que l'on n'a pas renseigné tous les champs.
==== Formulaire de modification et suppression ====
{{ :ppe2.1:equipe4:form_modif.png?nolink&450 |}}
Ce formulaire est composé d'une liste des compétitions (//cmb_Date//), de deux champs de texte (//Txt_NumClub// et //Txt_DateCompet//), et de trois boutons (//Cmd_Modifier//, //Cmd_Supprimer// et //Cmd_Quitter//).
Pour modifier une date, il faut sélectionner une compétition puis un club, inscrire la nouvelle date dans le dernier champ, puis cliquer sur le bouton Modifier.
Pour supprimer une compétition, il suffit de la sélectionner dans la liste puis de cliquer sur le bouton Supprimer.
==== Calendrier ====
{{ :ppe2.1:equipe4:calendrier.png?nolink |}}
===== Code source =====
==== Formulaire d'ajout ====
=== Cmd_Ajouter_Click ===
Dim bdKarate As Database
Dim rsCompetition, rsIDcomp As Recordset
Dim requete As String
Set bdKarate = CurrentDb()
Set rsCompetition = bdKarate.OpenRecordset("COMPETITION", DB_OPEN_DYNASET)
requete = "SELECT (MAX(NUM_COMPETITION)+1) AS id FROM COMPETITION"
Set rsIDcomp = bdKarate.OpenRecordset(requete)
rsCompetition.AddNew
rsCompetition!NUM_CLUB = cmb_Club
rsCompetition!DATE_COMPETITION = Txt_Date
rsCompetition!NUM_COMPETITION = rsIDcomp!id
rsCompetition.Update
=== Cmd_Fermer_Click ===
DoCmd.Close
=== cmb_Club_Click ===
Cmd_Ajouter.Enabled = True
==== Formulaire de modification et suppression ====
=== cmb_Date_Click ===
Cmd_Supprimer.Enabled = True
Cmd_Modifier.Enabled = True
Txt_NumClub.Enabled = True
Txt_DateCompet.Enabled = True
=== Cmd_Modifier_Click ===
Dim bdKarate As Database
Dim rsCompet As Recordset
Dim requete As String
Dim quitter
Set bdKarate = CurrentDb
requete = "SELECT * FROM COMPETITION WHERE NUM_COMPETITION=" & cmb_Date
Set rsCompet = bdKarate.OpenRecordset(requete, DB_OPEN_DYNASET) // Ce sont les arguments à utiliser pour cette MsgBox
// 16 = message "critique", important
quitter = MsgBox("Modifier la compétition ?", 16 + 4 + 256, "Attention") // <- 4 = question oui ou non
// 256 -> "Non" est le bouton par défaut
If quitter = 6 Then
rsCompet.Edit
rsCompet!NUM_CLUB = Txt_NumClub
rsCompet!DATE_COMPETITION = Txt_DateCompet
rsCompet.Update
MsgBox ("Modification effectuée")
Txt_NumClub.Value = ""
Txt_DateCompet.Value = ""
End If
=== Cmd_Quitter_Click ===
DoCmd.Close
=== Cmd_Supprimer_Click ===
Dim bdKarate As Database
Dim rsJuge As Recordset
Dim requete As String
Dim quitter
quitter = MsgBox("Supprimer la compétition ?", 16 + 4 + 256, "Attention")
If quitter <> 6 Then Exit Sub
Set bdKarate = CurrentDb
requete = "SELECT * FROM JUGE WHERE NUM_COMPETITION=" & cmb_Date
Set rsJuge = bdKarate.OpenRecordset(requete, DB_OPEN_DYNASET)
If Not rsJuge.EOF Then
MsgBox ("Avertissement : au moins un juge et un entraineur ont été affectés à cette compétition.")
End If
DoCmd.RunSQL "DELETE * FROM COMPETITION WHERE NUM_COMPETITION=" & cmb_Date
MsgBox ("Suppression effectuée")
Txt_NumClub.Value = ""
Txt_DateCompet.Value = ""