Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formulaire et sous formulaire

6 réponses
Avatar
TITI
Bonjour,

J'ai un formulaire qui contient un sous formulaire de type feuille de
données.

Je souhaiterai introduire une procédure qui oblige l'uitlisateur à valider
sa saisie (ou ses modifications) du formulaire avant de pouvoir passer dans
le sous formulaire.

J'ai introduit un test dans l'évènment Entrer du sous formulaire avec un
test qui demande à l'utilisateur s'il veut ou pas enregistrer les
modifications qu'il a fait.
(Txt.action permet de savoir l'action exécuter)
If Me.TxtAction = "Modification en cours" Or Me.TxtAction = "Création en
cours" Then
If MsgBox("Voulez vous enregistrer les modifications que vous avez
apporté sur la fiche principale ?", vbYesNo, title:=PubAppNom) = vbNo Then
'L'utilisateur ne veut pas enregistrer les modifications on annule
DoCmd.RunCommand acCmdUndo
End If
End If

Le problème vient de la commande DoCmd.RunCommand acCmdUndo, qu'il dit qu'il
ne veut pas exécuter.
J'ai l'impression que l'évènement Entrer arrive trop tard.


Merci.

Thierry

6 réponses

Avatar
Patrick
Bonjour,

Est-ce qu'il ne vaudrait pas mieux que tu fasses le contrôle au moment où le
focus quitte un des contrôles du formulaires ?

--
Patrick

"TITI" wrote in message
news:e%
Bonjour,

J'ai un formulaire qui contient un sous formulaire de type feuille de
données.

Je souhaiterai introduire une procédure qui oblige l'uitlisateur à valider
sa saisie (ou ses modifications) du formulaire avant de pouvoir passer
dans

le sous formulaire.

J'ai introduit un test dans l'évènment Entrer du sous formulaire avec un
test qui demande à l'utilisateur s'il veut ou pas enregistrer les
modifications qu'il a fait.
(Txt.action permet de savoir l'action exécuter)
If Me.TxtAction = "Modification en cours" Or Me.TxtAction = "Création en
cours" Then
If MsgBox("Voulez vous enregistrer les modifications que vous avez
apporté sur la fiche principale ?", vbYesNo, title:=PubAppNom) = vbNo Then
'L'utilisateur ne veut pas enregistrer les modifications on annule
DoCmd.RunCommand acCmdUndo
End If
End If

Le problème vient de la commande DoCmd.RunCommand acCmdUndo, qu'il dit
qu'il

ne veut pas exécuter.
J'ai l'impression que l'évènement Entrer arrive trop tard.


Merci.

Thierry





Avatar
TITI
Bonjour,

Eventuellement, mais comment je peux faire pour faire ce test que si c'est
pour aller dans le sous formulaire ?
(Je ne veux pas provoquer l'enregistrement dès que je change de champs sur
le formulaire principal).

Merci.

Thierry
"Patrick" a écrit dans le message de
news:%
Bonjour,

Est-ce qu'il ne vaudrait pas mieux que tu fasses le contrôle au moment où
le

focus quitte un des contrôles du formulaires ?

--
Patrick

"TITI" wrote in message
news:e%
Bonjour,

J'ai un formulaire qui contient un sous formulaire de type feuille de
données.

Je souhaiterai introduire une procédure qui oblige l'uitlisateur à
valider


sa saisie (ou ses modifications) du formulaire avant de pouvoir passer
dans

le sous formulaire.

J'ai introduit un test dans l'évènment Entrer du sous formulaire avec un
test qui demande à l'utilisateur s'il veut ou pas enregistrer les
modifications qu'il a fait.
(Txt.action permet de savoir l'action exécuter)
If Me.TxtAction = "Modification en cours" Or Me.TxtAction = "Création en
cours" Then
If MsgBox("Voulez vous enregistrer les modifications que vous avez
apporté sur la fiche principale ?", vbYesNo, title:=PubAppNom) = vbNo
Then


'L'utilisateur ne veut pas enregistrer les modifications on
annule


DoCmd.RunCommand acCmdUndo
End If
End If

Le problème vient de la commande DoCmd.RunCommand acCmdUndo, qu'il dit
qu'il

ne veut pas exécuter.
J'ai l'impression que l'évènement Entrer arrive trop tard.


Merci.

Thierry









Avatar
3stone
Salut,

"TITI"
Eventuellement, mais comment je peux faire pour faire ce test que si c'est
pour aller dans le sous formulaire ?
(Je ne veux pas provoquer l'enregistrement dès que je change de champs sur
le formulaire principal).



Mets ta procédure de contrôle dans l'événement "Avant mise à jour"
du formulaire principal...
S'il n'a pas rempli un contrôle obligatoire, tu annule la mise à jour
et tu affiche un msgbox convainquant.



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
TITI
Bonjour "3stone",

Effectivement cela devrait marcher, mais j'aimerai arriver à faire la
différence de l'enregistrement de mon formulaire principal, parce que je
sors du formulaire principal en fermant la fenêtre(ou je passe sur une autre
enregistrement) et parce que je vais dans le sous formulaire.

Je voudrai être capable de savoir qu'est ce qui provoque la maj. (je ne sais
pas si je suis bien clair).

Merci.

Thierry
"3stone" a écrit dans le message de
news:%
Salut,

"TITI"
Eventuellement, mais comment je peux faire pour faire ce test que si
c'est


pour aller dans le sous formulaire ?
(Je ne veux pas provoquer l'enregistrement dès que je change de champs
sur


le formulaire principal).



Mets ta procédure de contrôle dans l'événement "Avant mise à jour"
du formulaire principal...
S'il n'a pas rempli un contrôle obligatoire, tu annule la mise à jour
et tu affiche un msgbox convainquant.



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------







Avatar
3stone
Salut,

"TITI"

Je voudrai être capable de savoir qu'est ce qui provoque la maj. (je ne sais
pas si je suis bien clair).



Tu veux dire que tu souhaite vérifier si

- tu sors du formulaire principal vers le sous-formulaire
- tu sors du formulaire, simplement, pour faire autre chose...

si c'est cela, je ne pense pas... car quitter le form-principal
sauvera les données si pas d'annulation.


Faut voir si cela vaut la peine de contourner cela...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
TITI
Bonsoir "3stone"

C'est bien ce que je veux faire.

Thierry
"3stone" a écrit dans le message de
news:
Salut,

"TITI"

Je voudrai être capable de savoir qu'est ce qui provoque la maj. (je ne
sais


pas si je suis bien clair).



Tu veux dire que tu souhaite vérifier si

- tu sors du formulaire principal vers le sous-formulaire
- tu sors du formulaire, simplement, pour faire autre chose...

si c'est cela, je ne pense pas... car quitter le form-principal
sauvera les données si pas d'annulation.


Faut voir si cela vaut la peine de contourner cela...


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------