VBA access : ne pas enregistrer si champs vides

Résolu/Fermé
Loic_7447 Messages postés 49 Date d'inscription jeudi 11 juillet 2019 Statut Membre Dernière intervention 17 novembre 2020 - Modifié le 12 juil. 2019 à 09:09
Loic_7447 Messages postés 49 Date d'inscription jeudi 11 juillet 2019 Statut Membre Dernière intervention 17 novembre 2020 - 17 juil. 2019 à 13:52
Bonjour à tous,

J'ai créé un formulaire permettant d'intégrer un ligne dans un tableau grâce à 4 champs de texte et un bouton final.
J'aimerais en plus ajouter le fait que si une zone de texte est vide, un message d'erreur s'affiche et que l'enregistrement ne se fasse pas.
J'ai réussi à afficher le message d'erreur mais je n'arrive pas bloqué l'enregistrement dans la table.

Voici mon code :
Private Sub btn_ajouter_Click()

Set db = CurrentDb
Set rs = db.OpenRecordset("Stock_atelier")

rs.AddNew

rs!Référence = Me.txt_reference
rs!Fournisseur = Me.txt_fournisseur
rs!Quantité = Me.txt_quantité
rs!Type = Me.txt_outil

If Me.txt_reference = "" Then
    MsgBox ("Veuillez renseigner toutes les cases")
ElseIf Me.txt_fournisseur = "" Then
    MsgBox ("Veuillez renseigner toutes les cases")
ElseIf Me.txt_quantité = "" Then
    MsgBox ("Veuillez renseigner toutes les cases")
ElseIf Me.txt_outil = "" Then
    MsgBox ("Veuillez renseigner toutes les cases")

End If

rs.Update

rs.Close
db.Close

MsgBox "Référence ajoutée avec succès "
txt_reference = ""
txt_fournisseur = ""
txt_quantité = ""
txt_outil = ""

Set rs = Nothing
Set db = Nothing

End Sub


Merci d'avance pour votre aide !

1 réponse

yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474
12 juil. 2019 à 10:58
bonjour, suggestion:
If Me.txt_reference = "" or Me.txt_fournisseur = "" or Me.txt_quantité = "" _
          or Me.txt_outil = "" Then
    MsgBox ("Veuillez renseigner toutes les cases")
else
	rs.AddNew
	rs!Référence = Me.txt_reference
	rs!Fournisseur = Me.txt_fournisseur
	rs!Quantité = Me.txt_quantité
	rs!Type = Me.txt_outil
	rs.Update
End If
1
Loic_7447 Messages postés 49 Date d'inscription jeudi 11 juillet 2019 Statut Membre Dernière intervention 17 novembre 2020
17 juil. 2019 à 07:14
Merci pour la réponse, mais ça ne fonctionne malheureusement pas.
C'est comme si la partie du If au dessus du else n'était pas prise en compte et l'enregistrement se fait malgré tout ...
0
yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474 > Loic_7447 Messages postés 49 Date d'inscription jeudi 11 juillet 2019 Statut Membre Dernière intervention 17 novembre 2020
17 juil. 2019 à 08:08
le message s'affiche-t'il?
montre ton code.
0
Loic_7447 Messages postés 49 Date d'inscription jeudi 11 juillet 2019 Statut Membre Dernière intervention 17 novembre 2020
17 juil. 2019 à 08:47
Le seul message qui s'affiche est "Référence ajoutée avec succès".

Option Compare Database
Dim db As DAO.Database
Dim rs As DAO.Recordset

Private Sub btn_ajouter_Click()

Set db = CurrentDb
Set rs = db.OpenRecordset("Stock_atelier")

If Me.txt_reference = "" Or Me.txt_fournisseur = "" Or Me.txt_quantité = "" _
Or Me.txt_outil = "" Then
MsgBox ("Veuillez renseigner toutes les cases")
Else
rs.AddNew
rs!Référence = Me.txt_reference
rs!Fournisseur = Me.txt_fournisseur
rs!Quantité = Me.txt_quantité
rs!Type = Me.txt_outil
rs.Update
MsgBox ("Référence ajoutée avec succès ")
End If

rs.Close
db.Close

txt_reference = ""
txt_fournisseur = ""
txt_quantité = ""
txt_outil = ""

Set rs = Nothing
Set db = Nothing

End Sub
0
yg_be Messages postés 22711 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 avril 2024 1 474 > Loic_7447 Messages postés 49 Date d'inscription jeudi 11 juillet 2019 Statut Membre Dernière intervention 17 novembre 2020
17 juil. 2019 à 11:47
merci de préciser "basic" quand tu partages un code VBA.
je suggère d'ajouter
option explicit
en début de module.
es-tu certain qu'une des 4 zones du formulaire est égale à
""
? tu peux aussi vérifier cela dans la table.
0
Loic_7447 Messages postés 49 Date d'inscription jeudi 11 juillet 2019 Statut Membre Dernière intervention 17 novembre 2020
17 juil. 2019 à 13:52
Oui j'y penserai la prochaine fois.
Tout fonctionne correctement maintenant merci beaucoup pour l'aide !
0