Voilà j'ai un champs " Montant " dans mon form principal et dans lequel on
saisit une somme ; pour être sûre que personne n'oublie de saisir dans ce
champs j'ai une petite procédure qui a l'avantage de laisser la main si
jamais on doit rnregistrer un client qui ne paie pas ( travail à refaire,
erreur diverses etc........)
Voici ma procedure :
Private Sub Form_BeforeUpdate(Cancel As Integer)
' Si l'utilisateur a saisi un nom de client, vérifie le montant
Dim StrMessage As String
Dim IntOptions As Integer
Dim BytChoice As Byte
If IsNull(Montant) Then
StrMessage = " Vous devez saisir un montant ; voulez-vous valider
cet enregistrement ?"
IntOptions = vbQuestion + vbOKCancel
BytChoice = MsgBox(StrMessage, IntOptions)
If BytChoice = vbCancel Then
Montant.SetFocus
Cancel = True
End If
End If
End Sub
Le problème est que cela fonctionne si on essaie d'effacer une somme déjà
saisie dans ce champs ; par contre, si je saisie un nouveau client et que
*volontairement* je ne remplie pas mon champs" Montant ", il ne se passe
rien ; je passe à un autre champs sans problème et valide mon enregistrement
sans aucun message .
D'où vient mon erreur ? Qu'est ce que j'ai pu faire pour que cela ne
fonctionne pas comme je voudrais ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonsoir Emilie.
Tu ne testes que le cas où le montant est null, donc dans tout autre cas ça passe tout droit. si la valeur par défaut de montant est 0 par exemple, tu ne passeras jamais dans la procédure. il faut que tu rajoutes soit un complément else au if actuel ou que tu testes d'autres valeurs pour montant.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Emilie" a écrit dans le message de news:%23LMD$
Bonsoir à toutes et à tous ,
Voilà j'ai un champs " Montant " dans mon form principal et dans lequel on saisit une somme ; pour être sûre que personne n'oublie de saisir dans ce champs j'ai une petite procédure qui a l'avantage de laisser la main si jamais on doit rnregistrer un client qui ne paie pas ( travail à refaire, erreur diverses etc........) Voici ma procedure :
Private Sub Form_BeforeUpdate(Cancel As Integer) ' Si l'utilisateur a saisi un nom de client, vérifie le montant
Dim StrMessage As String Dim IntOptions As Integer Dim BytChoice As Byte
If IsNull(Montant) Then StrMessage = " Vous devez saisir un montant ; voulez-vous valider cet enregistrement ?" IntOptions = vbQuestion + vbOKCancel BytChoice = MsgBox(StrMessage, IntOptions)
If BytChoice = vbCancel Then Montant.SetFocus Cancel = True End If End If End Sub
Le problème est que cela fonctionne si on essaie d'effacer une somme déjà saisie dans ce champs ; par contre, si je saisie un nouveau client et que *volontairement* je ne remplie pas mon champs" Montant ", il ne se passe rien ; je passe à un autre champs sans problème et valide mon enregistrement
sans aucun message . D'où vient mon erreur ? Qu'est ce que j'ai pu faire pour que cela ne fonctionne pas comme je voudrais ?
Merci de votre aide et de vos lumières !!
A+
Emilie
Bonsoir Emilie.
Tu ne testes que le cas où le montant est null, donc dans tout autre cas ça
passe tout droit.
si la valeur par défaut de montant est 0 par exemple, tu ne passeras jamais
dans la procédure.
il faut que tu rajoutes soit un complément else au if actuel ou que tu
testes d'autres valeurs pour montant.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Emilie" <gege@wanadoo.fr> a écrit dans le message de
news:%23LMD$iAHEHA.2392@tk2msftngp13.phx.gbl...
Bonsoir à toutes et à tous ,
Voilà j'ai un champs " Montant " dans mon form principal et dans lequel on
saisit une somme ; pour être sûre que personne n'oublie de saisir dans ce
champs j'ai une petite procédure qui a l'avantage de laisser la main si
jamais on doit rnregistrer un client qui ne paie pas ( travail à refaire,
erreur diverses etc........)
Voici ma procedure :
Private Sub Form_BeforeUpdate(Cancel As Integer)
' Si l'utilisateur a saisi un nom de client, vérifie le montant
Dim StrMessage As String
Dim IntOptions As Integer
Dim BytChoice As Byte
If IsNull(Montant) Then
StrMessage = " Vous devez saisir un montant ; voulez-vous valider
cet enregistrement ?"
IntOptions = vbQuestion + vbOKCancel
BytChoice = MsgBox(StrMessage, IntOptions)
If BytChoice = vbCancel Then
Montant.SetFocus
Cancel = True
End If
End If
End Sub
Le problème est que cela fonctionne si on essaie d'effacer une somme déjà
saisie dans ce champs ; par contre, si je saisie un nouveau client et que
*volontairement* je ne remplie pas mon champs" Montant ", il ne se passe
rien ; je passe à un autre champs sans problème et valide mon
enregistrement
sans aucun message .
D'où vient mon erreur ? Qu'est ce que j'ai pu faire pour que cela ne
fonctionne pas comme je voudrais ?
Tu ne testes que le cas où le montant est null, donc dans tout autre cas ça passe tout droit. si la valeur par défaut de montant est 0 par exemple, tu ne passeras jamais dans la procédure. il faut que tu rajoutes soit un complément else au if actuel ou que tu testes d'autres valeurs pour montant.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Emilie" a écrit dans le message de news:%23LMD$
Bonsoir à toutes et à tous ,
Voilà j'ai un champs " Montant " dans mon form principal et dans lequel on saisit une somme ; pour être sûre que personne n'oublie de saisir dans ce champs j'ai une petite procédure qui a l'avantage de laisser la main si jamais on doit rnregistrer un client qui ne paie pas ( travail à refaire, erreur diverses etc........) Voici ma procedure :
Private Sub Form_BeforeUpdate(Cancel As Integer) ' Si l'utilisateur a saisi un nom de client, vérifie le montant
Dim StrMessage As String Dim IntOptions As Integer Dim BytChoice As Byte
If IsNull(Montant) Then StrMessage = " Vous devez saisir un montant ; voulez-vous valider cet enregistrement ?" IntOptions = vbQuestion + vbOKCancel BytChoice = MsgBox(StrMessage, IntOptions)
If BytChoice = vbCancel Then Montant.SetFocus Cancel = True End If End If End Sub
Le problème est que cela fonctionne si on essaie d'effacer une somme déjà saisie dans ce champs ; par contre, si je saisie un nouveau client et que *volontairement* je ne remplie pas mon champs" Montant ", il ne se passe rien ; je passe à un autre champs sans problème et valide mon enregistrement
sans aucun message . D'où vient mon erreur ? Qu'est ce que j'ai pu faire pour que cela ne fonctionne pas comme je voudrais ?
Merci de votre aide et de vos lumières !!
A+
Emilie
Emilie
Bonsoir Raymond ,
Raymond [mvp]... Wrote :
Tu ne testes que le cas où le montant est null, donc dans tout autre cas ça passe tout droit. si la valeur par défaut de montant est 0 par exemple, tu ne passeras jamais dans la procédure. il faut que tu rajoutes soit un complément else au if actuel ou que tu testes d'autres valeurs pour montant.
Je ne sais pas trop comment tester avecdes valeurs; effectivement la valeur par defaut est 0 ; ce que je ne m'explique pas c'est que si j'efface une somme, ça fonctionne ; par contre si le champs est vide, je passe au travers de ma procédure ! !
Je vais donc essayer ton conseil, à savoir essayer de rajouter un complément Else.
Merci Raymond
A+
Emilie
Bonsoir Raymond ,
Raymond [mvp]... <XYZ.access.seneque@free.fr>
Wrote :
Tu ne testes que le cas où le montant est null, donc dans tout autre
cas ça passe tout droit.
si la valeur par défaut de montant est 0 par exemple, tu ne passeras
jamais dans la procédure.
il faut que tu rajoutes soit un complément else au if actuel ou que tu
testes d'autres valeurs pour montant.
Je ne sais pas trop comment tester avecdes valeurs; effectivement la valeur
par defaut est 0 ; ce que je ne m'explique pas c'est que si j'efface une
somme, ça fonctionne ; par contre si le champs est vide, je passe au travers
de ma procédure ! !
Je vais donc essayer ton conseil, à savoir essayer de rajouter un complément
Else.
Tu ne testes que le cas où le montant est null, donc dans tout autre cas ça passe tout droit. si la valeur par défaut de montant est 0 par exemple, tu ne passeras jamais dans la procédure. il faut que tu rajoutes soit un complément else au if actuel ou que tu testes d'autres valeurs pour montant.
Je ne sais pas trop comment tester avecdes valeurs; effectivement la valeur par defaut est 0 ; ce que je ne m'explique pas c'est que si j'efface une somme, ça fonctionne ; par contre si le champs est vide, je passe au travers de ma procédure ! !
Je vais donc essayer ton conseil, à savoir essayer de rajouter un complément Else.