Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche
lamentablement sur un souci de MsgBox ;-(
Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit
bout de code :
Private Sub Genre_LostFocus()
If IsNull(Me.Genre) Then
MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"),
vbOKCancel
If Not vbOK Then
Me.Genre.SetFocus
Cancel = True
End If
End If
End Sub
Mon souci est que quand je click sur " Annuler ", je passe quand même au
controle suivant ! Je n'arrive pas à demander à Access de laisser le
focus sur le champ " Genre " si l'on click sur Annuler.
Qui pourrais me dire où est mon erreur ?
Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
--
Christophe
--------------------------------------------------------------
--------------------------------------------------------------
http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace)
ou
http://viadresse.com?25031980
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
rep = MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?", vbOKCancel ,"") If rep = vbOK Then Me.Genre.SetFocus Else Cancel = True End If
End Sub
salutations
RGI
Bonjour à tous,
Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche lamentablement sur un souci de MsgBox ;-( Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit bout de code : Private Sub Genre_LostFocus() If IsNull(Me.Genre) Then MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"), vbOKCancel If Not vbOK Then Me.Genre.SetFocus Cancel = True End If End If End Sub
Mon souci est que quand je click sur " Annuler ", je passe quand même au controle suivant ! Je n'arrive pas à demander à Access de laisser le focus sur le champ " Genre " si l'on click sur Annuler.
Qui pourrais me dire où est mon erreur ? Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
Bonjour
essaies ceci
Private Sub Genre_LostFocus()
Dim rep As String
rep = MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer
?", vbOKCancel ,"")
If rep = vbOK Then
Me.Genre.SetFocus
Else
Cancel = True
End If
End Sub
salutations
RGI
Bonjour à tous,
Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche
lamentablement sur un souci de MsgBox ;-(
Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce
petit bout de code :
Private Sub Genre_LostFocus()
If IsNull(Me.Genre) Then
MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"),
vbOKCancel
If Not vbOK Then
Me.Genre.SetFocus
Cancel = True
End If
End If
End Sub
Mon souci est que quand je click sur " Annuler ", je passe quand même
au controle suivant ! Je n'arrive pas à demander à Access de laisser
le focus sur le champ " Genre " si l'on click sur Annuler.
Qui pourrais me dire où est mon erreur ?
Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
rep = MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?", vbOKCancel ,"") If rep = vbOK Then Me.Genre.SetFocus Else Cancel = True End If
End Sub
salutations
RGI
Bonjour à tous,
Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche lamentablement sur un souci de MsgBox ;-( Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit bout de code : Private Sub Genre_LostFocus() If IsNull(Me.Genre) Then MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"), vbOKCancel If Not vbOK Then Me.Genre.SetFocus Cancel = True End If End If End Sub
Mon souci est que quand je click sur " Annuler ", je passe quand même au controle suivant ! Je n'arrive pas à demander à Access de laisser le focus sur le champ " Genre " si l'on click sur Annuler.
Qui pourrais me dire où est mon erreur ? Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
3stone
Salut,
"Ayrton [ASC]" | Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche | lamentablement sur un souci de MsgBox ;-( | Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit | bout de code : | Private Sub Genre_LostFocus() | If IsNull(Me.Genre) Then | MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"), | vbOKCancel | If Not vbOK Then | Me.Genre.SetFocus | Cancel = True | End If | End If | End Sub | | Mon souci est que quand je click sur " Annuler ", je passe quand même au | controle suivant ! Je n'arrive pas à demander à Access de laisser le | focus sur le champ " Genre " si l'on click sur Annuler.
Le "LostFocus" ne connait pas de 'cancel' ;-)
Essaies ton code sur le 'exit'
PS: Si tu compile ton code avant de "sortir" de l'éditeur (à faire absolument) tu aurais recu le message d'erreur "Variable non définie..."
"Ayrton [ASC]"
| Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche
| lamentablement sur un souci de MsgBox ;-(
| Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit
| bout de code :
| Private Sub Genre_LostFocus()
| If IsNull(Me.Genre) Then
| MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"),
| vbOKCancel
| If Not vbOK Then
| Me.Genre.SetFocus
| Cancel = True
| End If
| End If
| End Sub
|
| Mon souci est que quand je click sur " Annuler ", je passe quand même au
| controle suivant ! Je n'arrive pas à demander à Access de laisser le
| focus sur le champ " Genre " si l'on click sur Annuler.
Le "LostFocus" ne connait pas de 'cancel' ;-)
Essaies ton code sur le 'exit'
PS: Si tu compile ton code avant de "sortir" de l'éditeur (à faire absolument)
tu aurais recu le message d'erreur "Variable non définie..."
"Ayrton [ASC]" | Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche | lamentablement sur un souci de MsgBox ;-( | Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit | bout de code : | Private Sub Genre_LostFocus() | If IsNull(Me.Genre) Then | MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"), | vbOKCancel | If Not vbOK Then | Me.Genre.SetFocus | Cancel = True | End If | End If | End Sub | | Mon souci est que quand je click sur " Annuler ", je passe quand même au | controle suivant ! Je n'arrive pas à demander à Access de laisser le | focus sur le champ " Genre " si l'on click sur Annuler.
Le "LostFocus" ne connait pas de 'cancel' ;-)
Essaies ton code sur le 'exit'
PS: Si tu compile ton code avant de "sortir" de l'éditeur (à faire absolument) tu aurais recu le message d'erreur "Variable non définie..."
Salut Tu veux redonner le Focus au même champ dans l'évenement LostFocus de ce champ........ Tu donnes une valeur à la variable Cancel qui n'est pas définie dans le Sub......... Tu n'es pas sur le bon Evénement pour tester ça..- Tu mets ce Sub dans l'évenement Sur Sortie Et puis le test Msgbox n'est pas juste voilà
Private Sub genre_Exit(Cancel As Integer) If Not IsNull(Me.genre) Then Exit Sub
If MsgBox(" Le champ n'est pas renseigné, voulez-vous continuer ?", vbYesNo) = vbYes Then Me.b.SetFocus Else Cancel = True End If End Sub
Bonne journée.
"Ayrton [ASC]" a écrit dans le message de news:
Bonjour à tous,
Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche lamentablement sur un souci de MsgBox ;-( Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit bout de code : Private Sub Genre_LostFocus() If IsNull(Me.Genre) Then MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"), vbOKCancel If Not vbOK Then Me.Genre.SetFocus Cancel = True End If End If End Sub
Mon souci est que quand je click sur " Annuler ", je passe quand même au controle suivant ! Je n'arrive pas à demander à Access de laisser le focus sur le champ " Genre " si l'on click sur Annuler.
Qui pourrais me dire où est mon erreur ? Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Salut
Tu veux redonner le Focus au même champ dans l'évenement LostFocus de ce
champ........
Tu donnes une valeur à la variable Cancel qui n'est pas définie dans le
Sub.........
Tu n'es pas sur le bon Evénement pour tester ça..-
Tu mets ce Sub dans l'évenement Sur Sortie
Et puis le test Msgbox n'est pas juste
voilà
Private Sub genre_Exit(Cancel As Integer)
If Not IsNull(Me.genre) Then Exit Sub
If MsgBox(" Le champ n'est pas renseigné, voulez-vous continuer ?",
vbYesNo) = vbYes Then
Me.b.SetFocus
Else
Cancel = True
End If
End Sub
Bonne journée.
"Ayrton [ASC]" <becoAS@plusdespam.fr> a écrit dans le message de news:
uRcOWS0KHHA.5000@TK2MSFTNGP03.phx.gbl...
Bonjour à tous,
Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche
lamentablement sur un souci de MsgBox ;-(
Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit
bout de code :
Private Sub Genre_LostFocus()
If IsNull(Me.Genre) Then
MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"),
vbOKCancel
If Not vbOK Then
Me.Genre.SetFocus
Cancel = True
End If
End If
End Sub
Mon souci est que quand je click sur " Annuler ", je passe quand même au
controle suivant ! Je n'arrive pas à demander à Access de laisser le focus
sur le champ " Genre " si l'on click sur Annuler.
Qui pourrais me dire où est mon erreur ?
Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
--
Christophe
--------------------------------------------------------------
--------------------------------------------------------------
http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace)
ou
http://viadresse.com?25031980
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Salut Tu veux redonner le Focus au même champ dans l'évenement LostFocus de ce champ........ Tu donnes une valeur à la variable Cancel qui n'est pas définie dans le Sub......... Tu n'es pas sur le bon Evénement pour tester ça..- Tu mets ce Sub dans l'évenement Sur Sortie Et puis le test Msgbox n'est pas juste voilà
Private Sub genre_Exit(Cancel As Integer) If Not IsNull(Me.genre) Then Exit Sub
If MsgBox(" Le champ n'est pas renseigné, voulez-vous continuer ?", vbYesNo) = vbYes Then Me.b.SetFocus Else Cancel = True End If End Sub
Bonne journée.
"Ayrton [ASC]" a écrit dans le message de news:
Bonjour à tous,
Voilà, j'essaie depuis hier d'aider un ami son appli perso et je sèche lamentablement sur un souci de MsgBox ;-( Dans un form unique, sur un controle ,nommé " Genre ", j'ai mis ce petit bout de code : Private Sub Genre_LostFocus() If IsNull(Me.Genre) Then MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?"), vbOKCancel If Not vbOK Then Me.Genre.SetFocus Cancel = True End If End If End Sub
Mon souci est que quand je click sur " Annuler ", je passe quand même au controle suivant ! Je n'arrive pas à demander à Access de laisser le focus sur le champ " Genre " si l'on click sur Annuler.
Qui pourrais me dire où est mon erreur ? Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
JièL
Bonjoir(c) Ayrton [ASC]
Le 29/12/2006 13:26 vous avez écrit ceci :
Bonjour à tous,
Qui pourrais me dire où est mon erreur ?
A mon avis il y en a 2 Une sur la sainte axe de ton test car tu testes la constante vbok, qui vaut toujours 1, évidement
la seconde est de vouloir boucler sur ce champ pendant la saisie.
Ton code devrait être (AMHA) sur la propriété "Avant MAJ" du formulaire ce qui interdirait la validation tant que ta donnée n'est pas bonne. Avantage, tu peux regrouper tous les tests de validation ici sans obliger un ordre précis de saisie
Private Sub Form_BeforeUpdate(Cancel As Integer) Dim reponse If IsNull(Me.Genre) Then reponse = MsgBox("Le champ Genre n'est pas renseigné, voulez-vous continuer ?", vbOKCancel) If reponse <> vbOK Then DoCmd.CancelEvent Me.Genre.SetFocus End If End If End Sub
NB : étant TRES fainéant, je mettrais plutôt la propriétés du champ de la table à "Null Interdit", mais c'est vrai que le message d'erreur est un peu cracra ;-) Autre astuce, mettre une zone de liste parce que sinon tu va avoir tout et n'importe quoi dans ce champ la M, M., Mr, Mr., Monsieur, monsieur. Msieur... etc etc ;-)
Mébon, c'que j'en dis ;-)
Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
-- JièL / Jean-Louis GOUBERT - Bonnes fêtes de fin d'année Là bas mieux qu'en face ;-) http://forums.offices.free.fr/ La FAQ Outlook est là : http://faq.outlook.free.fr/ Les stats de CDO : http://faq.outlook.free.fr/cdo/
Bonjoir(c) Ayrton [ASC]
Le 29/12/2006 13:26 vous avez écrit ceci :
Bonjour à tous,
Qui pourrais me dire où est mon erreur ?
A mon avis il y en a 2
Une sur la sainte axe de ton test car tu testes la constante vbok, qui
vaut toujours 1, évidement
la seconde est de vouloir boucler sur ce champ pendant la saisie.
Ton code devrait être (AMHA) sur la propriété "Avant MAJ" du formulaire ce
qui interdirait la validation tant que ta donnée n'est pas bonne.
Avantage, tu peux regrouper tous les tests de validation ici sans obliger
un ordre précis de saisie
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim reponse
If IsNull(Me.Genre) Then
reponse = MsgBox("Le champ Genre n'est pas renseigné, voulez-vous
continuer ?", vbOKCancel)
If reponse <> vbOK Then
DoCmd.CancelEvent
Me.Genre.SetFocus
End If
End If
End Sub
NB : étant TRES fainéant, je mettrais plutôt la propriétés du champ de la
table à "Null Interdit", mais c'est vrai que le message d'erreur est un
peu cracra ;-)
Autre astuce, mettre une zone de liste parce que sinon tu va avoir tout et
n'importe quoi dans ce champ la
M, M., Mr, Mr., Monsieur, monsieur. Msieur... etc etc ;-)
Mébon, c'que j'en dis ;-)
Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
--
JièL / Jean-Louis GOUBERT - Bonnes fêtes de fin d'année
Là bas mieux qu'en face ;-) http://forums.offices.free.fr/
La FAQ Outlook est là : http://faq.outlook.free.fr/
Les stats de CDO : http://faq.outlook.free.fr/cdo/
A mon avis il y en a 2 Une sur la sainte axe de ton test car tu testes la constante vbok, qui vaut toujours 1, évidement
la seconde est de vouloir boucler sur ce champ pendant la saisie.
Ton code devrait être (AMHA) sur la propriété "Avant MAJ" du formulaire ce qui interdirait la validation tant que ta donnée n'est pas bonne. Avantage, tu peux regrouper tous les tests de validation ici sans obliger un ordre précis de saisie
Private Sub Form_BeforeUpdate(Cancel As Integer) Dim reponse If IsNull(Me.Genre) Then reponse = MsgBox("Le champ Genre n'est pas renseigné, voulez-vous continuer ?", vbOKCancel) If reponse <> vbOK Then DoCmd.CancelEvent Me.Genre.SetFocus End If End If End Sub
NB : étant TRES fainéant, je mettrais plutôt la propriétés du champ de la table à "Null Interdit", mais c'est vrai que le message d'erreur est un peu cracra ;-) Autre astuce, mettre une zone de liste parce que sinon tu va avoir tout et n'importe quoi dans ce champ la M, M., Mr, Mr., Monsieur, monsieur. Msieur... etc etc ;-)
Mébon, c'que j'en dis ;-)
Un grand merci d'avance et bonne fêtes de fin d'année à vous tous ;-)
Cordialement
-- JièL / Jean-Louis GOUBERT - Bonnes fêtes de fin d'année Là bas mieux qu'en face ;-) http://forums.offices.free.fr/ La FAQ Outlook est là : http://faq.outlook.free.fr/ Les stats de CDO : http://faq.outlook.free.fr/cdo/
3stone
Salut JièL,
"JièL" | Private Sub Form_BeforeUpdate(Cancel As Integer)
Le problème (ici) du beforeUpdate, c'est qu'il n'a lieu que lors d'un... update ;-) Si on passe dans les contrôles par une tabulation ou s'il n'y a pas de modification de la valeur... pas de update !
Le "exit" est ici mieux approprié.
Et le code pour le msgbox peut devenir :
If IsNull(NomCtrl) Then If MsgBox("continuer ?", vbYesNo) = vbNo Then Cancel = True End If End If
"JièL"
| Private Sub Form_BeforeUpdate(Cancel As Integer)
Le problème (ici) du beforeUpdate, c'est qu'il n'a lieu que lors d'un... update ;-)
Si on passe dans les contrôles par une tabulation ou s'il n'y a pas
de modification de la valeur... pas de update !
Le "exit" est ici mieux approprié.
Et le code pour le msgbox peut devenir :
If IsNull(NomCtrl) Then
If MsgBox("continuer ?", vbYesNo) = vbNo Then
Cancel = True
End If
End If
"JièL" | Private Sub Form_BeforeUpdate(Cancel As Integer)
Le problème (ici) du beforeUpdate, c'est qu'il n'a lieu que lors d'un... update ;-) Si on passe dans les contrôles par une tabulation ou s'il n'y a pas de modification de la valeur... pas de update !
Le "exit" est ici mieux approprié.
Et le code pour le msgbox peut devenir :
If IsNull(NomCtrl) Then If MsgBox("continuer ?", vbYesNo) = vbNo Then Cancel = True End If End If
Bonjour *3stone*, Dans ton message de news:%, Tu nous annonçais ce qui suit :-(*)
Salut,
Salut 3stone, Ca fait un moment que j'étais pas venu poser ma p'tite question hein ? ;-)
Le "LostFocus" ne connait pas de 'cancel' ;-)
Ah.....c'est une chose que je nesavais pas....
Essaies ton code sur le 'exit'
Ca ne vas pas aller car je ne veux pas que l'utilisateur sorte........juste qu'il reste "bloqué " sur le champ " Genre " au cas où il cliquerait sur Annuler....
PS: Si tu compile ton code avant de "sortir" de l'éditeur (à faire absolument) tu aurais recu le message d'erreur "Variable non définie..."
Ben non j'ai rien eu ;-( Et je te promets que je compile......
Passe de bonne fêtes ;-)
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Bonjour *3stone*,
Dans ton message de news:%23cN04A1KHHA.3268@TK2MSFTNGP04.phx.gbl,
Tu nous annonçais ce qui suit :-(*)
Salut,
Salut 3stone,
Ca fait un moment que j'étais pas venu poser ma p'tite question hein ?
;-)
Le "LostFocus" ne connait pas de 'cancel' ;-)
Ah.....c'est une chose que je nesavais pas....
Essaies ton code sur le 'exit'
Ca ne vas pas aller car je ne veux pas que l'utilisateur
sorte........juste qu'il reste "bloqué " sur le champ " Genre " au cas
où il cliquerait sur Annuler....
PS: Si tu compile ton code avant de "sortir" de l'éditeur (à faire
absolument) tu aurais recu le message d'erreur "Variable non
définie..."
Ben non j'ai rien eu ;-( Et je te promets que je compile......
Passe de bonne fêtes ;-)
--
Christophe
--------------------------------------------------------------
--------------------------------------------------------------
http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace)
ou
http://viadresse.com?25031980
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Bonjour *3stone*, Dans ton message de news:%, Tu nous annonçais ce qui suit :-(*)
Salut,
Salut 3stone, Ca fait un moment que j'étais pas venu poser ma p'tite question hein ? ;-)
Le "LostFocus" ne connait pas de 'cancel' ;-)
Ah.....c'est une chose que je nesavais pas....
Essaies ton code sur le 'exit'
Ca ne vas pas aller car je ne veux pas que l'utilisateur sorte........juste qu'il reste "bloqué " sur le champ " Genre " au cas où il cliquerait sur Annuler....
PS: Si tu compile ton code avant de "sortir" de l'éditeur (à faire absolument) tu aurais recu le message d'erreur "Variable non définie..."
Ben non j'ai rien eu ;-( Et je te promets que je compile......
Passe de bonne fêtes ;-)
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Ayrton [ASC]
Bonjour *JMH*, Dans ton message de news:, Tu nous annonçais ce qui suit :-(*)
Salut Tu veux redonner le Focus au même champ dans l'évenement LostFocus de ce champ........ Tu donnes une valeur à la variable Cancel qui n'est pas définie dans le Sub......... Tu n'es pas sur le bon Evénement pour tester ça..- Tu mets ce Sub dans l'évenement Sur Sortie Et puis le test Msgbox n'est pas juste voilà
Private Sub genre_Exit(Cancel As Integer) If Not IsNull(Me.genre) Then Exit Sub
If MsgBox(" Le champ n'est pas renseigné, voulez-vous continuer ?", vbYesNo) = vbYes Then Me.b.SetFocus Else Cancel = True End If End Sub
Impeccable, çafonctionne pil comme je voulais ;-) Merci beaucoup..
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerber mail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.outlookexpress6?hl=fr
Bonjour *JMH*,
Dans ton message de news:esGjQH1KHHA.3552@TK2MSFTNGP03.phx.gbl,
Tu nous annonçais ce qui suit :-(*)
Salut
Tu veux redonner le Focus au même champ dans l'évenement LostFocus de
ce champ........
Tu donnes une valeur à la variable Cancel qui n'est pas définie dans
le Sub.........
Tu n'es pas sur le bon Evénement pour tester ça..-
Tu mets ce Sub dans l'évenement Sur Sortie
Et puis le test Msgbox n'est pas juste
voilà
Private Sub genre_Exit(Cancel As Integer)
If Not IsNull(Me.genre) Then Exit Sub
If MsgBox(" Le champ n'est pas renseigné, voulez-vous continuer ?",
vbYesNo) = vbYes Then
Me.b.SetFocus
Else
Cancel = True
End If
End Sub
Impeccable, çafonctionne pil comme je voulais ;-)
Merci beaucoup..
--
Christophe
--------------------------------------------------------------
--------------------------------------------------------------
http://cerber mail.com/?cUkbZNnG8H (Enlever l'espace)
ou
http://viadresse.com?25031980
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.outlookexpress6?hl=fr
Bonjour *JMH*, Dans ton message de news:, Tu nous annonçais ce qui suit :-(*)
Salut Tu veux redonner le Focus au même champ dans l'évenement LostFocus de ce champ........ Tu donnes une valeur à la variable Cancel qui n'est pas définie dans le Sub......... Tu n'es pas sur le bon Evénement pour tester ça..- Tu mets ce Sub dans l'évenement Sur Sortie Et puis le test Msgbox n'est pas juste voilà
Private Sub genre_Exit(Cancel As Integer) If Not IsNull(Me.genre) Then Exit Sub
If MsgBox(" Le champ n'est pas renseigné, voulez-vous continuer ?", vbYesNo) = vbYes Then Me.b.SetFocus Else Cancel = True End If End Sub
Impeccable, çafonctionne pil comme je voulais ;-) Merci beaucoup..
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerber mail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.outlookexpress6?hl=fr
Ayrton [ASC]
Bonjour *JièL*, Dans ton message de news:eaz%, Tu nous annonçais ce qui suit :-(*)
Bonjoir(c) Ayrton [ASC]
Salut Jièl,
A mon avis il y en a 2
Ben s'il n' y en a e,core que deux, ça va.....lol
Une sur la sainte axe de ton test car tu testes la constante vbok, qui vaut toujours 1, évidement
Bien vu
la seconde est de vouloir boucler sur ce champ pendant la saisie.
Ton code devrait être (AMHA) sur la propriété "Avant MAJ" du formulaire ce qui interdirait la validation tant que ta donnée n'est pas bonne. Avantage, tu peux regrouper tous les tests de validation ici sans obliger un ordre précis de saisie
Private Sub Form_BeforeUpdate(Cancel As Integer) Dim reponse If IsNull(Me.Genre) Then reponse = MsgBox("Le champ Genre n'est pas renseigné, voulez-vous continuer ?", vbOKCancel) If reponse <> vbOK Then DoCmd.CancelEvent Me.Genre.SetFocus End If End If End Sub
Yes mais ça oblige d'attendre d"être à la fin de la saisie pour avoir le message alors qu'en " Sortie ", on l' a tout de suite...
NB : étant TRES fainéant, je mettrais plutôt la propriétés du champ de la table à "Null Interdit", mais c'est vrai que le message d'erreur est un peu cracra ;-)
Je ne te le fait pas dire et là aussi, il faut attendre la fin de la saisie pour avoir la MsgBox
Autre astuce, mettre une zone de liste parce que sinon tu va avoir tout et n'importe quoi dans ce champ la M, M., Mr, Mr., Monsieur, monsieur. Msieur... etc etc ;-)
Mébon, c'que j'en dis ;-)
T'inquiète, il s'agit déjà d'une zone de liste déroulante et elle est déjà toute remplie puisqu'il s'agit de genre de films ; j'aide un ami à se faire une petite appli sympa pour gérer des DVDs.... Voili voilou.....
Tiens, pendant que j'y suis, une petite question à vous tous : Soit une zone de liste déroulante remplie ; à côté, une autre zone de liste aussi remplie ; question : Est il possible en selectionnant une valeur de la première zone de liste deroulante, de masquer certaines valeurs de la seconde ? Suis je clair ? ;-)
Un grand merci à vous...................encore une fois !
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Bonjour *JièL*,
Dans ton message de news:eaz%23TL1KHHA.2456@TK2MSFTNGP06.phx.gbl,
Tu nous annonçais ce qui suit :-(*)
Bonjoir(c) Ayrton [ASC]
Salut Jièl,
A mon avis il y en a 2
Ben s'il n' y en a e,core que deux, ça va.....lol
Une sur la sainte axe de ton test car tu testes la constante vbok, qui
vaut toujours 1, évidement
Bien vu
la seconde est de vouloir boucler sur ce champ pendant la saisie.
Ton code devrait être (AMHA) sur la propriété "Avant MAJ" du
formulaire ce qui interdirait la validation tant que ta donnée n'est
pas bonne. Avantage, tu peux regrouper tous les tests de validation
ici sans obliger un ordre précis de saisie
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim reponse
If IsNull(Me.Genre) Then
reponse = MsgBox("Le champ Genre n'est pas renseigné,
voulez-vous continuer ?", vbOKCancel)
If reponse <> vbOK Then
DoCmd.CancelEvent
Me.Genre.SetFocus
End If
End If
End Sub
Yes mais ça oblige d'attendre d"être à la fin de la saisie pour avoir le
message alors qu'en " Sortie ", on l' a tout de suite...
NB : étant TRES fainéant, je mettrais plutôt la propriétés du champ
de la table à "Null Interdit", mais c'est vrai que le message
d'erreur est un peu cracra ;-)
Je ne te le fait pas dire et là aussi, il faut attendre la fin de la
saisie pour avoir la MsgBox
Autre astuce, mettre une zone de liste parce que sinon tu va avoir
tout et n'importe quoi dans ce champ la
M, M., Mr, Mr., Monsieur, monsieur. Msieur... etc etc ;-)
Mébon, c'que j'en dis ;-)
T'inquiète, il s'agit déjà d'une zone de liste déroulante et elle est
déjà toute remplie puisqu'il s'agit de genre de films ; j'aide un ami à
se faire une petite appli sympa pour gérer des DVDs....
Voili voilou.....
Tiens, pendant que j'y suis, une petite question à vous tous :
Soit une zone de liste déroulante remplie ; à côté, une autre zone de
liste aussi remplie ; question :
Est il possible en selectionnant une valeur de la première zone de liste
deroulante, de masquer certaines valeurs de la seconde ?
Suis je clair ? ;-)
Un grand merci à vous...................encore une fois !
--
Christophe
--------------------------------------------------------------
--------------------------------------------------------------
http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace)
ou
http://viadresse.com?25031980
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Bonjour *JièL*, Dans ton message de news:eaz%, Tu nous annonçais ce qui suit :-(*)
Bonjoir(c) Ayrton [ASC]
Salut Jièl,
A mon avis il y en a 2
Ben s'il n' y en a e,core que deux, ça va.....lol
Une sur la sainte axe de ton test car tu testes la constante vbok, qui vaut toujours 1, évidement
Bien vu
la seconde est de vouloir boucler sur ce champ pendant la saisie.
Ton code devrait être (AMHA) sur la propriété "Avant MAJ" du formulaire ce qui interdirait la validation tant que ta donnée n'est pas bonne. Avantage, tu peux regrouper tous les tests de validation ici sans obliger un ordre précis de saisie
Private Sub Form_BeforeUpdate(Cancel As Integer) Dim reponse If IsNull(Me.Genre) Then reponse = MsgBox("Le champ Genre n'est pas renseigné, voulez-vous continuer ?", vbOKCancel) If reponse <> vbOK Then DoCmd.CancelEvent Me.Genre.SetFocus End If End If End Sub
Yes mais ça oblige d'attendre d"être à la fin de la saisie pour avoir le message alors qu'en " Sortie ", on l' a tout de suite...
NB : étant TRES fainéant, je mettrais plutôt la propriétés du champ de la table à "Null Interdit", mais c'est vrai que le message d'erreur est un peu cracra ;-)
Je ne te le fait pas dire et là aussi, il faut attendre la fin de la saisie pour avoir la MsgBox
Autre astuce, mettre une zone de liste parce que sinon tu va avoir tout et n'importe quoi dans ce champ la M, M., Mr, Mr., Monsieur, monsieur. Msieur... etc etc ;-)
Mébon, c'que j'en dis ;-)
T'inquiète, il s'agit déjà d'une zone de liste déroulante et elle est déjà toute remplie puisqu'il s'agit de genre de films ; j'aide un ami à se faire une petite appli sympa pour gérer des DVDs.... Voili voilou.....
Tiens, pendant que j'y suis, une petite question à vous tous : Soit une zone de liste déroulante remplie ; à côté, une autre zone de liste aussi remplie ; question : Est il possible en selectionnant une valeur de la première zone de liste deroulante, de masquer certaines valeurs de la seconde ? Suis je clair ? ;-)
Un grand merci à vous...................encore une fois !
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Ayrton [ASC]
Bonjour *RGI*, Dans ton message de news:%, Tu nous annonçais ce qui suit :-(*)
Bonjour
Bonjour,
essaies ceci
Private Sub Genre_LostFocus() Dim rep As String
rep = MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?", vbOKCancel ,"") If rep = vbOK Then Me.Genre.SetFocus Else Cancel = True End If
End Sub
Ca vas pas ! ;-( Si je click sur Annuler, jecontinue quand même, comme si je cliquais sur OK.... Merci quand même
Salutations
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Bonjour *RGI*,
Dans ton message de news:%231GhO70KHHA.5104@TK2MSFTNGP06.phx.gbl,
Tu nous annonçais ce qui suit :-(*)
Bonjour
Bonjour,
essaies ceci
Private Sub Genre_LostFocus()
Dim rep As String
rep = MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer
?", vbOKCancel ,"")
If rep = vbOK Then
Me.Genre.SetFocus
Else
Cancel = True
End If
End Sub
Ca vas pas ! ;-( Si je click sur Annuler, jecontinue quand même, comme
si je cliquais sur OK....
Merci quand même
Salutations
--
Christophe
--------------------------------------------------------------
--------------------------------------------------------------
http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace)
ou
http://viadresse.com?25031980
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Bonjour *RGI*, Dans ton message de news:%, Tu nous annonçais ce qui suit :-(*)
Bonjour
Bonjour,
essaies ceci
Private Sub Genre_LostFocus() Dim rep As String
rep = MsgBox (" Le champ n'est pas renseigné, voulez-vous continuer ?", vbOKCancel ,"") If rep = vbOK Then Me.Genre.SetFocus Else Cancel = True End If
End Sub
Ca vas pas ! ;-( Si je click sur Annuler, jecontinue quand même, comme si je cliquais sur OK.... Merci quand même
Salutations
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Ayrton [ASC]
Bonjour *3stone*, Dans ton message de news:, Tu nous annonçais ce qui suit :-(*)
Salut JièL,
"JièL"
Private Sub Form_BeforeUpdate(Cancel As Integer)
Le problème (ici) du beforeUpdate, c'est qu'il n'a lieu que lors d'un... update ;-) Si on passe dans les contrôles par une tabulation ou s'il n'y a pas de modification de la valeur... pas de update !
Exact
Le "exit" est ici mieux approprié.
Et le code pour le msgbox peut devenir :
If IsNull(NomCtrl) Then If MsgBox("continuer ?", vbYesNo) = vbNo Then Cancel = True End If End If
Ok 3stone mais qur quel évènement ? Je viens de tester ton code sur " Perte de Focus " et si je click sur No, je passe " tout droit " ;-( ; autrement dit, que je click sur Yes ou No = même résultat . pourquoi t'est ce ? ? ;-)
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Bonjour *3stone*,
Dans ton message de news:u4kv3X1KHHA.536@TK2MSFTNGP02.phx.gbl,
Tu nous annonçais ce qui suit :-(*)
Salut JièL,
"JièL"
Private Sub Form_BeforeUpdate(Cancel As Integer)
Le problème (ici) du beforeUpdate, c'est qu'il n'a lieu que lors
d'un... update ;-) Si on passe dans les contrôles par une tabulation
ou s'il n'y a pas
de modification de la valeur... pas de update !
Exact
Le "exit" est ici mieux approprié.
Et le code pour le msgbox peut devenir :
If IsNull(NomCtrl) Then
If MsgBox("continuer ?", vbYesNo) = vbNo Then
Cancel = True
End If
End If
Ok 3stone mais qur quel évènement ? Je viens de tester ton code sur "
Perte de Focus " et si je click sur No, je passe " tout droit " ;-( ;
autrement dit, que je click sur Yes ou No = même résultat .
pourquoi t'est ce ? ? ;-)
--
Christophe
--------------------------------------------------------------
--------------------------------------------------------------
http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace)
ou
http://viadresse.com?25031980
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr
Bonjour *3stone*, Dans ton message de news:, Tu nous annonçais ce qui suit :-(*)
Salut JièL,
"JièL"
Private Sub Form_BeforeUpdate(Cancel As Integer)
Le problème (ici) du beforeUpdate, c'est qu'il n'a lieu que lors d'un... update ;-) Si on passe dans les contrôles par une tabulation ou s'il n'y a pas de modification de la valeur... pas de update !
Exact
Le "exit" est ici mieux approprié.
Et le code pour le msgbox peut devenir :
If IsNull(NomCtrl) Then If MsgBox("continuer ?", vbYesNo) = vbNo Then Cancel = True End If End If
Ok 3stone mais qur quel évènement ? Je viens de tester ton code sur " Perte de Focus " et si je click sur No, je passe " tout droit " ;-( ; autrement dit, que je click sur Yes ou No = même résultat . pourquoi t'est ce ? ? ;-)
-- Christophe -------------------------------------------------------------- -------------------------------------------------------------- http://cerbe rmail.com/?cUkbZNnG8H (Enlever l'espace) ou http://viadresse.com?25031980 Recherche dans les Archives : http://groups.google.fr/group/microsoft.public.fr.windowsxp?hl=fr