Gérer la fermeture d'un formulaire

Le
sonia.gaubert
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Dragan
Le #18879371
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.



sonia.gaubert
Le #18900111
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
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.


Publicité
Poster une réponse
Anonyme