OVH Cloud OVH Cloud

pb msgbox

3 réponses
Avatar
ykebirfr
bonjour!

voil=E0 mon probleme: g un bouton me permettant de sortir de=20
mon formulaire.
avant de sortir il demande =E0 l'utilisateur s'il accepte=20
d'enregistrer ou non les modif.

cela se fait via un msgbox : yes, no, cancel
or dans j'utilise le formulaire, non seulment la msgbox=20
n'apparait pas mais en plus g une ereur de compilation=20
m'indiquant que cancel est non definie.
que faire?
merci d'avance
ci- dessous le code
yk

Private Sub Commande63_Click()
On Error GoTo Err_Commande63_Click
'variable stockant la r=E9ponse donn=E9e dans la boite de=20
dialogue
Dim intReponse As Integer
'si il y a eu des modifications on demande la=20
confirmation
If Me.Dirty Then
'message pour l'utilisateur
intReponse =3D MsgBox("Voulez-vous enregistrer ?",=20
vbYesNoCancel, "Confirmation")
Select Case intReponse
Case vbYes
' oui est choisit, on ne fait rien puisque=20
le
' comportement par defaut de Access est=20
d'enregistrer.
Case vbNo
' non est choisit donc on annule les=20
modification
Me.Undo
Case vbCancel
' Annuler est choisit donc on annule la=20
manipulation
Cancel =3D True
End Select
End If
=20
DoCmd.Close

Exit_Commande63_Click:
Exit Sub

Err_Commande63_Click:
MsgBox Err.Description
Resume Exit_Commande63_Click
=20
End Sub

3 réponses

Avatar
Eric
Bonjour,

Les procédures click n'ont pas d'argument Cancel donc tu ne peux pas sur
l'instruction Case vbCancel mettre Cancel = True.

Remplaces comme suit:
Case vbCancel
Exit Sub 'ca te fait sortir de la procédure
...

Pour avoir ta MsgBox, il faut que tu aies modifié un des champs de
l'enregistrement, sinon Dirty reste à Faux.

A+
Eric
Avatar
pascal
Salut

Dis moi si cancel est une propriété de ton formulaire, ne
doit il pas y avoir Me.cancel sinon je vois pas comment
cancel peut être défini.

A+
-----Message d'origine-----
bonjour!

voilà mon probleme: g un bouton me permettant de sortir
de

mon formulaire.
avant de sortir il demande à l'utilisateur s'il accepte
d'enregistrer ou non les modif.

cela se fait via un msgbox : yes, no, cancel
or dans j'utilise le formulaire, non seulment la msgbox
n'apparait pas mais en plus g une ereur de compilation
m'indiquant que cancel est non definie.
que faire?
merci d'avance
ci- dessous le code
yk

Private Sub Commande63_Click()
On Error GoTo Err_Commande63_Click
'variable stockant la réponse donnée dans la boite de
dialogue
Dim intReponse As Integer
'si il y a eu des modifications on demande la
confirmation
If Me.Dirty Then
'message pour l'utilisateur
intReponse = MsgBox("Voulez-vous enregistrer ?",
vbYesNoCancel, "Confirmation")
Select Case intReponse
Case vbYes
' oui est choisit, on ne fait rien
puisque

le
' comportement par defaut de Access est
d'enregistrer.
Case vbNo
' non est choisit donc on annule les
modification
Me.Undo
Case vbCancel
' Annuler est choisit donc on annule la
manipulation
Cancel = True
End Select
End If

DoCmd.Close

Exit_Commande63_Click:
Exit Sub

Err_Commande63_Click:
MsgBox Err.Description
Resume Exit_Commande63_Click

End Sub
.



Avatar
merci

-----Message d'origine-----
Bonjour,

Les procédures click n'ont pas d'argument Cancel donc tu
ne peux pas sur

l'instruction Case vbCancel mettre Cancel = True.

Remplaces comme suit:
Case vbCancel
Exit Sub 'ca te fait sortir de la procédure
...

Pour avoir ta MsgBox, il faut que tu aies modifié un des
champs de

l'enregistrement, sinon Dirty reste à Faux.

A+
Eric

.