====== 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 = ""