Public Class FrmEdit Dim selectedID As Integer Private Sub FrmEdit1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load RBId.Checked = True REM "Check par défaut" au chargement. 'Selectedclef = FrmAccueil.IDlu Call generator(CBNP) REM Contruit la liste des candidats NON supprimés a partir du tableau d'index. End Sub Private Sub CmdAnnul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdAnnul.Click Me.Close() REM On close pour réinitialiser. Peut-être on programmera une fonction pour reset plus vite, mais on remplacera par des hides. Plus dangereux a programmer. FrmAccueil.Show() End Sub REM SUPPRIMER LE CANDIDAT Private Sub CmdDelet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdDelet.Click Dim state As Integer If detecterreur() Then state = MsgBox("Voulez-vous réelement supprimer le candidat n° " & Format(selectedID, "00") & " ?", MsgBoxStyle.Question & MsgBoxStyle.YesNo, "Confirmation de la supression") If state = vbYes Then Call SupprBdD(selectedID) Me.Close() FrmAccueil.Show() End If End If End Sub Private Sub CmdNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdNext.Click If detecterreur() Then Call PrepareNext(selectedID) End Sub Function detecterreur() As Boolean Dim ok = False If RBId.Checked Then If TxtId.Text = "" Then REM Obligation de tester la présence de chiffre avant affectation. MsgBox("La saisie du numéro d'inscription n'a pas été effectuée.", MsgBoxStyle.Exclamation, "Champ vide") TxtId.Focus() Else selectedID = TxtId.Text If selectedID >= ClefMAX Or selectedID <= 1 Then REM regarde si le numéro du candidat est bien déjà existant. MsgBox("L'identifiant que vous avez saisie n'est pas valide.", MsgBoxStyle.Exclamation, "Candidat introuvable") TxtId.Focus() Else If Tindex(selectedID - 2).Suppr Then REM Il faut aussi vérifier que c'est un candidat non supprimé. MsgBox("Ce candidat a été supprimé.", MsgBoxStyle.Exclamation, "Candidat indisponible") TxtId.Focus() Else ok = True End If End If End If ElseIf RBNP.Checked Then If CBNP.SelectedIndex <> -1 Then REM Via le CBox If IsNumeric(Microsoft.VisualBasic.Right(CBNP.SelectedItem, 2)) Then selectedID = Microsoft.VisualBasic.Right(CBNP.SelectedItem, 2) End If ok = True End If End If Return ok End Function Sub PrepareNext(ByVal clef As Integer) FileGet(nf, cddts, clef) Selectedclef = clef Me.Hide() REM On utilise hide pour naviger entre les feuilles sans devoir modifier la BdD, le bouton "MaJ" a la dernière feuille (Input3) enregistrera tout les modifications. FrmInput1.Show() End Sub REM Fonctionne comme ca par defaut. 'Private Sub RBId_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RBId.CheckedChanged, RBNP.CheckedChanged ' If RBId.Checked Then ' RBNP.Checked = False ' End If ' If RBNP.Checked Then ' RBId.Checked = False ' End If 'End Sub Private Sub CBNP_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles CBNP.GotFocus RBNP.Checked = True REM Permet de "checker" le ratiobox correspondant au focus (On veut choisir son nom dans une GRrB). End Sub Private Sub TxtId_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtId.GotFocus RBId.Checked = True REM Permet de "checker" le ratiobox correspondant au focus (On veut enter l'ID du candidat). End Sub Private Sub TxtId_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtId.KeyPress If e.KeyChar = vbBack Then Exit Sub End If If e.KeyChar < "0" Or e.KeyChar > "9" Then REM On peut utiliser aussi Not IsNumeric() e.KeyChar = Chr(0) End If End Sub End Class