Bonjour à tous,
Je sollicite vos conseils sur le problème que je rencontre. Je suis jeune débutante en prog' et n'arrive pas à solutionner mon problème toute seule.
Dans un formulaire pour créer un nouveau collaborateur, j'ai crée un programme VBA pour controler la saisie avant enregistrement. Le principe est d'informer l'utilisateur que certains champs sont vides et donc de les renseigner (voir exemple en pièce jointe). Mon problème est que lorsque tous les champs sont renseignés, mon message s'affiche toujours (sans lister les champs puisque tous remplis) et je n'arrive pas à quitter mon formulaire. En revanche, l'enregistrement de la nouvelle ressource est bien effectué.
Voici le code evenementiel en question :
J'ai essayé avec docmd.close, avec la fonction else mais cela ne fonctionne pas. J'ai dû zapper quelque chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub btn_save_quit_Click() 'vérification de la saisie avant enregistrement Dim retour_erreur As String retour_erreur = "Ce collaborateur ne peut être enregistré car les donnnées suivantes ne sont pas renseignées" If IsNull(Me.txt_matricule) Or IsEmpty(Me.txt_matricule) Or Me.txt_matricule = "" Then retour_erreur = retour_erreur & Chr(10) + Chr(13) & "Matricule" End If If IsNull(Me.txt_gestionnaire) Or IsEmpty(Me.txt_gestionnaire) Or Me.txt_gestionnaire = "" Then retour_erreur = retour_erreur & Chr(10) + Chr(13) & "Gestionnaire" End If If Me.choix_respm1 = 0 Or IsNull(Me.choix_respm1) = True Then retour_erreur = retour_erreur & Chr(10) + Chr(13) & "Responsable M1" End If If Me.choix_respm2 = 0 Or IsNull(Me.choix_respm2) = True Then retour_erreur = retour_erreur & Chr(10) + Chr(13) & "Responsable M2" End If If Me.choix_secteur = 0 Or IsNull(Me.choix_secteur) = True Then retour_erreur = retour_erreur & Chr(10) + Chr(13) & "Secteur" End If If Me.choix_profil = 0 Or IsNull(Me.choix_profil) = True Then retour_erreur = retour_erreur & Chr(10) + Chr(13) & "Profil" End If If IsNull(Me.txt_login) Or IsEmpty(Me.txt_login) Or Me.txt_login = "" Then retour_erreur = retour_erreur & Chr(10) + Chr(13) & "Login" End If 'message envoyé si erreur de saisie MsgBox retour_erreur, vbCritical, "ENREGISTREMENT IMPOSSIBLE" Me.txt_matricule.SetFocus Exit Sub End Sub
Merci d'avance pour vos éclaircissements.
Partager