Bonjour ! J'ai besoin de votre aide pour un petit problème, plutôt un désagrément, dans mon programme. Je vous place le décor. J'ai un formulaire principal avec 2 boutons. J'ai un sous-formulaire vide à la base. J'affiche avec le bouton 1 le sous-formulaire 1, et j'affiche avec le bouton 2 le sous-formulaire 2. Je passe donc d'un sous-formulaire à l'autre en cliquant sur les boutons.

En m'inspirant de la FAQ et des sources, j'empêche Access de mettre à jour les enregistrements de mon sous-formulaire. J'ai donc un bouton qui me permet manuellement de sauvegarder mes mises à jour.

Seulement, si je modifie une donnée, que je n'enregistre pas la mise à jour, et que je clique sur le bouton pour passer à l'autre formulaire, ça ne m'affiche pas du 1° coup le formulaire mais ça se contente de remettre le donnée initiale que j'ai modifié, et ensuite seulement, en recliquant sur le bouton j'accède à l'autre formulaire. C'est pas possible de faire en sorte qu'il passe directement à l'autre formulaire sans enregistrer ?

Mon code :
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
Private Sub Form_Load()
    ' j'utilise la variable varMAJ pour permettre à mon bouton bSav d'enregistrer
    varMAJ = 0
End Sub
---------------------------------------------------
 
Private Sub Form_BeforeUpdate(Cancel As Integer)
    ' si varMAJ = 0 alors ça n'enregistre pas
    If varMAJ = 0 Then
        Me.Undo
        Cancel = True
    End If
End Sub
----------------------------------------------------
 
Private Sub bSav_Click()
    varMAJ = 1
    DoCmd.RunCommand acCmdSaveRecord
    varMAJ = 0
End Sub