VBA access : ne pas enregistrer si champs vides

Résolu
Loic_7447 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
Loic_7447 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
    1. Loic_7447 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Loic_7447 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
         
        le message s'affiche-t'il?
        montre ton code.
        0
    2. Loic_7447 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Loic_7447 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
         
        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
    3. Loic_7447 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
       
      Oui j'y penserai la prochaine fois.
      Tout fonctionne correctement maintenant merci beaucoup pour l'aide !
      0