OVH Cloud OVH Cloud

annuler un message

6 réponses
Avatar
Alain V
Bonsoir,

Sous Access 2000

Dans un formulaire, je place un contrôle de validité dans l'évènement
Form_Unload.
Dans le cas ou je fais apparaître un message, je mets la variable Cancel à
true pour annuler l'évènement de sortie mais
je ne souhaite pas voir apparaître en plus de mon message le message
"l'action close a été annulée".
Je pensais que le fait de mettre DoCmd.SetWarnings à False allait
solutionner le pb mais pas du tout.

Quelqu'un à t-il une solution ?

Merci

Alain


Private Sub Form_Unload(Cancel As Integer)

If ... Then
DoCmd.SetWarnings False
Choix = MsgBox("Erreur", vbExclamation + vbOKOnly,
"Erreur")
Cancel = True
DoCmd.GoToControl ("ArtCode")
End If

end sub

6 réponses

Avatar
Raymond [mvp]
Bonjour.

il faudrait que tu puisses entrer la ligne On Error Resume Next juste avant
, à la place du setwarning par exemple.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Alain V" <Alain a écrit dans le message de
news:
Bonsoir,

Sous Access 2000

Dans un formulaire, je place un contrôle de validité dans l'évènement
Form_Unload.
Dans le cas ou je fais apparaître un message, je mets la variable Cancel
à true pour annuler l'évènement de sortie mais
je ne souhaite pas voir apparaître en plus de mon message le message
"l'action close a été annulée".
Je pensais que le fait de mettre DoCmd.SetWarnings à False allait
solutionner le pb mais pas du tout.

Quelqu'un à t-il une solution ?

Merci

Alain


Private Sub Form_Unload(Cancel As Integer)

If ... Then
DoCmd.SetWarnings False
Choix = MsgBox("Erreur", vbExclamation + vbOKOnly,
"Erreur")
Cancel = True
DoCmd.GoToControl ("ArtCode")
End If

end sub



Avatar
Alain V
Bonsoir Raymond

Je ne comprends pas bien ta réponse.
Il n'y a pas d'erreur.
C'est juste la boîte de dialogue Microsoft Access qui me dit que "l'action
close a été annulée" que je ne veux pas voir apparaître.
J'ai quand même esssayé le "on error"mais le résultat est le même.

Merci quand même

Alain

"Raymond [mvp]" a écrit dans le message de
news: %
Bonjour.

il faudrait que tu puisses entrer la ligne On Error Resume Next juste
avant , à la place du setwarning par exemple.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Alain V" <Alain a écrit dans le message de
news:
Bonsoir,

Sous Access 2000

Dans un formulaire, je place un contrôle de validité dans l'évènement
Form_Unload.
Dans le cas ou je fais apparaître un message, je mets la variable Cancel
à true pour annuler l'évènement de sortie mais
je ne souhaite pas voir apparaître en plus de mon message le message
"l'action close a été annulée".
Je pensais que le fait de mettre DoCmd.SetWarnings à False allait
solutionner le pb mais pas du tout.

Quelqu'un à t-il une solution ?

Merci

Alain


Private Sub Form_Unload(Cancel As Integer)

If ... Then
DoCmd.SetWarnings False
Choix = MsgBox("Erreur", vbExclamation + vbOKOnly,
"Erreur")
Cancel = True
DoCmd.GoToControl ("ArtCode")
End If

end sub







Avatar
Raymond [mvp]
le fait d'annuler une action provoque une erreur, ça aurait pu supprimer le
message.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Alain V" <Alain a écrit dans le message de
news: %
Bonsoir Raymond

Je ne comprends pas bien ta réponse.
Il n'y a pas d'erreur.
C'est juste la boîte de dialogue Microsoft Access qui me dit que "l'action
close a été annulée" que je ne veux pas voir apparaître.
J'ai quand même esssayé le "on error"mais le résultat est le même.

Merci quand même

Alain


Avatar
Eric
Bonjour Alain,

Ton problème vient du fait que tu as un bouton pour fermer ton
formulaire avec la ligne DoCmd.Close.

Donc si tu fermes avec ce bouton et ta proc sur le Unload du form, tu as
le message L'action Close a été annulée, message que tu n'as pas si tu
fermes directement par la croix le formulaire.

Je rajouterai sur la proc du bouton Fermer :

Private Sub cmdFermer_Click()

If IsNull(Texte0) Then
MsgBox "Champ obligatoire : ArtCode"
ArtCode.SetFocus
Else
DoCmd.Close
End If
End Sub

Ok ?
--
A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/

Bonsoir Raymond

Je ne comprends pas bien ta réponse.
Il n'y a pas d'erreur.
C'est juste la boîte de dialogue Microsoft Access qui me dit que "l'action
close a été annulée" que je ne veux pas voir apparaître.
J'ai quand même esssayé le "on error"mais le résultat est le même.

Merci quand même

Alain

"Raymond [mvp]" a écrit dans le message de
news: %

Bonjour.

il faudrait que tu puisses entrer la ligne On Error Resume Next juste
avant , à la place du setwarning par exemple.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Alain V" <Alain a écrit dans le message de
news:

Bonsoir,

Sous Access 2000

Dans un formulaire, je place un contrôle de validité dans l'évènement
Form_Unload.
Dans le cas ou je fais apparaître un message, je mets la variable Cancel
à true pour annuler l'évènement de sortie mais
je ne souhaite pas voir apparaître en plus de mon message le message
"l'action close a été annulée".
Je pensais que le fait de mettre DoCmd.SetWarnings à False allait
solutionner le pb mais pas du tout.

Quelqu'un à t-il une solution ?

Merci

Alain


Private Sub Form_Unload(Cancel As Integer)

If ... Then
DoCmd.SetWarnings False
Choix = MsgBox("Erreur", vbExclamation + vbOKOnly,
"Erreur")
Cancel = True
DoCmd.GoToControl ("ArtCode")
End If

end sub











Avatar
Gilbert
Bonjour,

Dans la gestion d'erreur de ta procédure tu mets quelque chose comme

FinSub:
Exit sub
ErrSub:
If err.Number = 2501 Then '(2501 est en principe le numéro de l'erreur
d'annulation de la commande DoCmd)
'Pas de message
Else
MsgBox "Erreur " & err.Number & ": " & err.Description, ,
Titre_Msg_Err
End If
Resume FinSub

Gilbert

"Alain V" <Alain a écrit dans le message de
news:
Bonsoir,

Sous Access 2000

Dans un formulaire, je place un contrôle de validité dans l'évènement
Form_Unload.
Dans le cas ou je fais apparaître un message, je mets la variable Cancel
à

true pour annuler l'évènement de sortie mais
je ne souhaite pas voir apparaître en plus de mon message le message
"l'action close a été annulée".
Je pensais que le fait de mettre DoCmd.SetWarnings à False allait
solutionner le pb mais pas du tout.

Quelqu'un à t-il une solution ?

Merci

Alain


Private Sub Form_Unload(Cancel As Integer)

If ... Then
DoCmd.SetWarnings False
Choix = MsgBox("Erreur", vbExclamation + vbOKOnly,
"Erreur")
Cancel = True
DoCmd.GoToControl ("ArtCode")
End If

end sub




Avatar
Alain V
Bonjour et merci à tous pour vos réponses

Bien vu Eric pour le bouton fermer et le DoCmd.Close
J'ai modifié et tout est OK

A +

Alain


"Eric" a écrit dans le message de news:
%
Bonjour Alain,

Ton problème vient du fait que tu as un bouton pour fermer ton formulaire
avec la ligne DoCmd.Close.

Donc si tu fermes avec ce bouton et ta proc sur le Unload du form, tu as
le message L'action Close a été annulée, message que tu n'as pas si tu
fermes directement par la croix le formulaire.

Je rajouterai sur la proc du bouton Fermer :

Private Sub cmdFermer_Click()

If IsNull(Texte0) Then
MsgBox "Champ obligatoire : ArtCode"
ArtCode.SetFocus
Else
DoCmd.Close
End If
End Sub

Ok ?
--
A+
Eric
Lien à suivre : http://users.skynet.be/mpfa/

Bonsoir Raymond

Je ne comprends pas bien ta réponse.
Il n'y a pas d'erreur.
C'est juste la boîte de dialogue Microsoft Access qui me dit que
"l'action close a été annulée" que je ne veux pas voir apparaître.
J'ai quand même esssayé le "on error"mais le résultat est le même.

Merci quand même

Alain

"Raymond [mvp]" a écrit dans le message
de news: %

Bonjour.

il faudrait que tu puisses entrer la ligne On Error Resume Next juste
avant , à la place du setwarning par exemple.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Alain V" <Alain a écrit dans le message de
news:

Bonsoir,

Sous Access 2000

Dans un formulaire, je place un contrôle de validité dans l'évènement
Form_Unload.
Dans le cas ou je fais apparaître un message, je mets la variable Cancel
à true pour annuler l'évènement de sortie mais
je ne souhaite pas voir apparaître en plus de mon message le message
"l'action close a été annulée".
Je pensais que le fait de mettre DoCmd.SetWarnings à False allait
solutionner le pb mais pas du tout.

Quelqu'un à t-il une solution ?

Merci

Alain


Private Sub Form_Unload(Cancel As Integer)

If ... Then
DoCmd.SetWarnings False
Choix = MsgBox("Erreur", vbExclamation +
vbOKOnly, "Erreur")
Cancel = True
DoCmd.GoToControl ("ArtCode")
End If

end sub