Access : problème d'enregistrement dans une Table

Bonjour,

Voilà j'ai un petit souci d'enregistrement des données saisies dans mon formulaire dans ma Table.

Explications : Voici le code que j'utilise pour enregistrer toutes les données de mon formulaire dans les champs correspondant de ma Table :

Private Sub Enregistrer_Click()

On Error GoTo Err_Enregistrer_Click



GoTo Err_Enregistrer_Click
End If




    Me.AllowAdditions = True
    DoCmd.GoToRecord , , acNewRec
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Exit_Enregistrer_Click:
    Exit Sub

Err_Enregistrer_Click:
    MsgBox Err.Description
    Resume Exit_Enregistrer_Click
    

End Sub


Voilà et j'ai également un bouton nouvel enregistrement pour tout remettre à zéro et faire un nouvel enregistrement :

Private Sub Nouvelle_saisie_Click()

On Error GoTo Err_Nouvelle_saisie_Click

    Me.AllowAdditions = True
    DoCmd.GoToRecord , , acNewRec

Exit_Nouvelle_saisie_Click:
    Exit Sub

Err_Nouvelle_saisie_Click:
    MsgBox Err.Description
    Resume Exit_Nouvelle_saisie_Click
    

End Sub


Tout marche niquel, les champs de ma Table sont bien remplis lorsque je clique sur enregistrer, ça m'ajoute donc une ligne à ma Table, parfait.

Simplement voilà le souci : si je commence a saisir des données et que je décide de finalement fermer mon formulaire sans rien enregistrer : il ajoute quand même une ligne à ma Table avec les champs que j'avais remplis.

J'aimerais que le bouton enregistrer lui seul permette une telle chose.

Voilà, si vous pouviez m'aider la-dessus svp ;)

merci !

6 réponses

  1. Bonjour
    access enregistre automatiquement les données des qu'un champ est completé
    0
    1. Bonjour !

      merci ;)

      y'a -t-il un moyen de remédier à ça ? pour que seul le bouton enregistrer de mon formulaire puisse le faire ?

      merci ;)
      0
  2. Dans la table, sur les propriétés des champs, il y a une; null interdit qui a non . Tu la passes a oui.
    Ce qui entraine le non enregistrement de ta ligne car il manque un champ.
    0
    1. Excuse moi de te déranger encore, peux-tu me dire le non exact de la ligne dans les propriétés de chaque champ de mon formulaire, parce que je ne vois pas laquelle d'après ton précédent post ^^

      merci beaucoup ;)
      0
  3. bonjour
    Ce n'est pas dans le formulaire mais dans la table proprieté null interdit qui est a non tu la passes a oui
    0
    1. Ok merci beaucoup Castours,

      ça marche, pas d'enregistrements si je ne le veux pas.

      En revanche lorsque je quitte sans enregistrer, Access me dit " vous devez entrer une valeur pour le champ 'unte'l " , et j'ai une erreur de compilation.

      Comment remédier à ce problème pour que je puisse quitter /fermer mon formulaire à moitié rempli sans que ça n'enregistre ni que ça fasse d'erreur de compilation ? ^^

      je sais j'en demande beaucoup, mais je trouverai ça aberrant de la part d'Access qu'on ne puisse pas faire ça sans problème, ça me semble être la base de tout environnement de travail .... ( sous word on te demande si tu veux enregistrer, et si tu ne veux pas il n'y a pas de bug )

      Merci beaucoup en tout cas ;)
      0
      1. Bonjour
        Quand tu refuses l'enregistrement , tu reviens au point de depart.
        avec quel access travailles-tu?.
        0
      2. Alors je travaille sous Access 2007-2010. Et oui c'est ce que j'aimerais, que je puisse tout simplement refuser l'enregistrement et revenir au point de départ.

        Mais là access me sort une erreur de compilo et me demande de remplir certains champs.
        0
    2. Bonjour
      Une suggestion
      Peut etre en faisant un bouton effacement de l'enregistrement, avant de quitter mais cela supprime aussi le N° ou l'ide de la clé primaire. tu auras une rupture de continuité de numérotation.
      0
      1. Voici le code d'un bouton effacement access2003

        Tu selectionnes ton enregistrement et tu cliques sur le bouton
        cela fonctionne j'ai essayé

        Private Sub Commande21_Click()
        On Error GoTo Err_Commande21_Click

        DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
        DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

        Exit_Commande21_Click:
        Exit Sub

        Err_Commande21_Click:
        MsgBox Err.Description
        Resume Exit_Commande21_Click

        End Sub
        0
    3. Salut,
      tu fais un bouton Retour qui annule l'enregistrement et qui te ferme ton formulaire. Et tu interdis l'accès à la fermeture classique avec la croix en haut à droite.
      A+
      0