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

Gérer la fermeture d'un formulaire

2 réponses
Avatar
sonia.gaubert
Bonjour,
J'ai beau chercher dans les =E9changes sur la question, je ne trouve pas
la r=E9ponse =E0 mon probl=E8me... sans doute pourtant pas si compliqu=E9
(?) :
Sur l'=E9v=E8nement unload j'ai mis :

If IsNull(Me![FormeIR]) Then
Dim Msg, Style, Title, choix, Response As Integer
Msg =3D "Le champ 'Forme Instrument de recherche' n'est pas rempli :
ceci provoquera un bug =E0 la conversion du fonds ! " & vbCrLf & "Voulez-
vous remplir ce champ maintenant ?"

Style =3D vbYesNo + vbQuestion + vbDefaultButton2
Title =3D " AVERTISSEMENT "
choix =3D MsgBox(Msg, Style, Title)
If choix =3D vbYes Then
cancel =3D True
DoCmd.GoToControl "FormeIR"

End If
End If

Tout va bien avec =E7a, du moment que je ne clique pas sur mon bouton de
fermeture (Docmd.close) : parce que l=E0, mon message apparait bien mais
si je fait "Yes je veux bien remplir le champ", eh ben rien =E0 fiche du
cancel =3D true... enfin pas tout =E0 fait, il fait pire car, non
seulement il ferme, mais ne me sauvegarde pas les modif. faites dans
d'autres champs !!
Alors, c'est quoi la solution, =F4h vous grands d=E9tenteurs du
SavoirS'enSortir, Pak=F4mmoua ;o)
Tr=EAve de rigolade, si vous pouviez m'aider ?
Sonia.

2 réponses

Avatar
Dragan
bonjour,
il y a plusieurs solutions.
La première utiliser un bouton pour valider les modifications; le bouton
devient disponible dès lors que tous les champs requis sont remplis. Ainsi,
la fermeture n'est plus à gérer.
La deuxième solution, désactiver le bouton Fermer dans les propriétés du
formulaire et placer un bouton de fermeture sur le formulaire; c'est
l'événement click sur ce bouton qui provoque la fermeture et le test sur le
contenu des champs.


"" a écrit :

Bonjour,
J'ai beau chercher dans les échanges sur la question, je ne trouve pas
la réponse à mon problème... sans doute pourtant pas si compliqué
(?) :
Sur l'évènement unload j'ai mis :

If IsNull(Me![FormeIR]) Then
Dim Msg, Style, Title, choix, Response As Integer
Msg = "Le champ 'Forme Instrument de recherche' n'est pas rempli :
ceci provoquera un bug à la conversion du fonds ! " & vbCrLf & "Voulez-
vous remplir ce champ maintenant ?"

Style = vbYesNo + vbQuestion + vbDefaultButton2
Title = " AVERTISSEMENT "
choix = MsgBox(Msg, Style, Title)
If choix = vbYes Then
cancel = True
DoCmd.GoToControl "FormeIR"

End If
End If

Tout va bien avec ça, du moment que je ne clique pas sur mon bouton de
fermeture (Docmd.close) : parce que là, mon message apparait bien mais
si je fait "Yes je veux bien remplir le champ", eh ben rien à fiche du
cancel = true... enfin pas tout à fait, il fait pire car, non
seulement il ferme, mais ne me sauvegarde pas les modif. faites dans
d'autres champs !!
Alors, c'est quoi la solution, ôh vous grands détenteurs du
SavoirS'enSortir, Pakômmoua ;o)
Trêve de rigolade, si vous pouviez m'aider ?
Sonia.



Avatar
sonia.gaubert
Bonjour et merci pour votre réponse (qui m'avait échappé jusqu'à
maintenant) :o)
La première solution proposée ne me semblait pas vraiment adéquate :
question d'harmonie et de logique de fonctionnement à l'échelle de ma
base...
J'ai testé la deuxième solution et ça fonctionne parfaitement :o)
Donc, encore merci !
Sonia.


On 11 mar, 20:23, Dragan wrote:
bonjour,
 il y a plusieurs solutions.
 La première utiliser un bouton pour valider les modifications; le bo uton
devient disponible dès lors que tous les champs requis sont remplis. Ai nsi,
la fermeture n'est plus à gérer.
 La deuxième solution, désactiver le bouton Fermer dans les propri étés du
formulaire et placer un bouton de fermeture sur le formulaire; c'est
l'événement click sur ce bouton qui provoque la fermeture et le test sur le
contenu des champs.