je voudrais savoir quel est la fa=E7on la plus simple de=20
rendre obligatoire l'introduction de certains champs d'une=20
table et d'avoir un message customis=E9 quand ce champ n'est=20
pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communaut=E9,
Le bleu
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]
Bonjour.
Valide si : Est Pas Null Message si erreur : Il faut entrer une valeur tu peux le faire au niveau du formulaire ou au niveau de la table. le faire au niveau du formulaire permet de personnaliser le message dans le contexte tandis que le mettre au niveau de la table oblige de mettre un message plus général, mais permet de ne pas s'en occuper en saisie, le contrôle étant généralisé. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" a écrit dans le message de news:2849401c463ab$d9dfb250$ Hello la communauté,
je voudrais savoir quel est la façon la plus simple de rendre obligatoire l'introduction de certains champs d'une table et d'avoir un message customisé quand ce champ n'est pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté, Le bleu
Bonjour.
Valide si : Est Pas Null
Message si erreur : Il faut entrer une valeur
tu peux le faire au niveau du formulaire ou au niveau de la table.
le faire au niveau du formulaire permet de personnaliser le message dans le
contexte tandis que le mettre au niveau de la table oblige de mettre un
message plus général, mais permet de ne pas s'en occuper en saisie, le
contrôle étant généralisé.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:2849401c463ab$d9dfb250$a301280a@phx.gbl...
Hello la communauté,
je voudrais savoir quel est la façon la plus simple de
rendre obligatoire l'introduction de certains champs d'une
table et d'avoir un message customisé quand ce champ n'est
pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté,
Le bleu
Valide si : Est Pas Null Message si erreur : Il faut entrer une valeur tu peux le faire au niveau du formulaire ou au niveau de la table. le faire au niveau du formulaire permet de personnaliser le message dans le contexte tandis que le mettre au niveau de la table oblige de mettre un message plus général, mais permet de ne pas s'en occuper en saisie, le contrôle étant généralisé. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" a écrit dans le message de news:2849401c463ab$d9dfb250$ Hello la communauté,
je voudrais savoir quel est la façon la plus simple de rendre obligatoire l'introduction de certains champs d'une table et d'avoir un message customisé quand ce champ n'est pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté, Le bleu
Raymond [mvp]
Bonjour.
(j'avais répondu mais j'ai annulé le message car plus compliqué)
Au niveau de la table: propriété Chaîne vide autorisée : ne joue pas. si propriété Null interdit = oui, C'est le meilleur moyen de bloquer toute non saisie dans toute l'application. Mais ce contrôle est réalisé en premier et le message est un message général access. au niveau du formulaire: Le contrôle de null interdit du niveau table est réalisé en premier. Si on place est pas null dans la propriété valide si, ce contrôle n'est jamais réalisé si oui est indiqué dans la table. si on met non dans la table et est pas null dans le formulaire, c'est le message du formulaire qui est affiché. Mais le contrôle de la valeur est réalisé en sortie du champ, donc si on ne passe pas dans le champ le contrôle n'est pas réalisé. Dans ce cas, on est obligé de rajouter un controle IsNull(champ) dans l'événement Form_BeforeUpdate avec un message personnel. si tu veux impérativement un message personnel, il faut passer par non dans la table (ce qui est dangereux selon le champ) et faire un contrôle dans Form_BeforeUpdate en doublette éventuellement avec le BeforeUpdate du champ. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" a écrit dans le message de news:2849401c463ab$d9dfb250$ Hello la communauté,
je voudrais savoir quel est la façon la plus simple de rendre obligatoire l'introduction de certains champs d'une table et d'avoir un message customisé quand ce champ n'est pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté, Le bleu
Bonjour.
(j'avais répondu mais j'ai annulé le message car plus compliqué)
Au niveau de la table:
propriété Chaîne vide autorisée : ne joue pas.
si propriété Null interdit = oui, C'est le meilleur moyen de bloquer toute
non saisie dans toute l'application. Mais ce contrôle est réalisé en premier
et le message est un message général access.
au niveau du formulaire:
Le contrôle de null interdit du niveau table est réalisé en premier. Si on
place est pas null dans la propriété valide si, ce contrôle n'est jamais
réalisé si oui est indiqué dans la table.
si on met non dans la table et est pas null dans le formulaire, c'est le
message du formulaire qui est affiché. Mais le contrôle de la valeur est
réalisé en sortie du champ, donc si on ne passe pas dans le champ le
contrôle n'est pas réalisé. Dans ce cas, on est obligé de rajouter un
controle IsNull(champ) dans l'événement Form_BeforeUpdate avec un message
personnel.
si tu veux impérativement un message personnel, il faut passer par non dans
la table (ce qui est dangereux selon le champ) et faire un contrôle dans
Form_BeforeUpdate en doublette éventuellement avec le BeforeUpdate du champ.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" <anonymous@discussions.microsoft.com> a écrit dans le
message de news:2849401c463ab$d9dfb250$a301280a@phx.gbl...
Hello la communauté,
je voudrais savoir quel est la façon la plus simple de
rendre obligatoire l'introduction de certains champs d'une
table et d'avoir un message customisé quand ce champ n'est
pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté,
Le bleu
(j'avais répondu mais j'ai annulé le message car plus compliqué)
Au niveau de la table: propriété Chaîne vide autorisée : ne joue pas. si propriété Null interdit = oui, C'est le meilleur moyen de bloquer toute non saisie dans toute l'application. Mais ce contrôle est réalisé en premier et le message est un message général access. au niveau du formulaire: Le contrôle de null interdit du niveau table est réalisé en premier. Si on place est pas null dans la propriété valide si, ce contrôle n'est jamais réalisé si oui est indiqué dans la table. si on met non dans la table et est pas null dans le formulaire, c'est le message du formulaire qui est affiché. Mais le contrôle de la valeur est réalisé en sortie du champ, donc si on ne passe pas dans le champ le contrôle n'est pas réalisé. Dans ce cas, on est obligé de rajouter un controle IsNull(champ) dans l'événement Form_BeforeUpdate avec un message personnel. si tu veux impérativement un message personnel, il faut passer par non dans la table (ce qui est dangereux selon le champ) et faire un contrôle dans Form_BeforeUpdate en doublette éventuellement avec le BeforeUpdate du champ. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" a écrit dans le message de news:2849401c463ab$d9dfb250$ Hello la communauté,
je voudrais savoir quel est la façon la plus simple de rendre obligatoire l'introduction de certains champs d'une table et d'avoir un message customisé quand ce champ n'est pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté, Le bleu
Luis
Bonjour Raymond, Moi j'ai fait quelque chose comme ça: Private Sub Form_Current() DoCmd.Maximize
If IsNull(Me.NomChamp1) Then MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide" Me. NomChamp1.SetFocus End If
If IsNull(Me.NomChamp2) Then MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide" Me. NomChamp2.SetFocus End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous les cas il y a un avertissement pour chaque champ. Je ne sais pas si c'est très rigoureux mais ça fonctionne. Luis
-----Message d'origine----- Bonjour.
Valide si : Est Pas Null Message si erreur : Il faut entrer une valeur tu peux le faire au niveau du formulaire ou au niveau de la table.
le faire au niveau du formulaire permet de personnaliser le message dans le
contexte tandis que le mettre au niveau de la table oblige de mettre un
message plus général, mais permet de ne pas s'en occuper en saisie, le
contrôle étant généralisé. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" a écrit dans le
message de news:2849401c463ab$d9dfb250$ Hello la communauté,
je voudrais savoir quel est la façon la plus simple de rendre obligatoire l'introduction de certains champs d'une table et d'avoir un message customisé quand ce champ n'est pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté, Le bleu
.
Bonjour Raymond,
Moi j'ai fait quelque chose comme ça:
Private Sub Form_Current()
DoCmd.Maximize
If IsNull(Me.NomChamp1) Then
MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide"
Me. NomChamp1.SetFocus
End If
If IsNull(Me.NomChamp2) Then
MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide"
Me. NomChamp2.SetFocus
End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous
les cas il y a un avertissement pour chaque champ.
Je ne sais pas si c'est très rigoureux mais ça fonctionne.
Luis
-----Message d'origine-----
Bonjour.
Valide si : Est Pas Null
Message si erreur : Il faut entrer une valeur
tu peux le faire au niveau du formulaire ou au niveau de
la table.
le faire au niveau du formulaire permet de personnaliser
le message dans le
contexte tandis que le mettre au niveau de la table
oblige de mettre un
message plus général, mais permet de ne pas s'en occuper
en saisie, le
contrôle étant généralisé.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" <anonymous@discussions.microsoft.com> a
écrit dans le
message de news:2849401c463ab$d9dfb250$a301280a@phx.gbl...
Hello la communauté,
je voudrais savoir quel est la façon la plus simple de
rendre obligatoire l'introduction de certains champs d'une
table et d'avoir un message customisé quand ce champ n'est
pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté,
Le bleu
Bonjour Raymond, Moi j'ai fait quelque chose comme ça: Private Sub Form_Current() DoCmd.Maximize
If IsNull(Me.NomChamp1) Then MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide" Me. NomChamp1.SetFocus End If
If IsNull(Me.NomChamp2) Then MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide" Me. NomChamp2.SetFocus End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous les cas il y a un avertissement pour chaque champ. Je ne sais pas si c'est très rigoureux mais ça fonctionne. Luis
-----Message d'origine----- Bonjour.
Valide si : Est Pas Null Message si erreur : Il faut entrer une valeur tu peux le faire au niveau du formulaire ou au niveau de la table.
le faire au niveau du formulaire permet de personnaliser le message dans le
contexte tandis que le mettre au niveau de la table oblige de mettre un
message plus général, mais permet de ne pas s'en occuper en saisie, le
contrôle étant généralisé. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Allez les bleus" a écrit dans le
message de news:2849401c463ab$d9dfb250$ Hello la communauté,
je voudrais savoir quel est la façon la plus simple de rendre obligatoire l'introduction de certains champs d'une table et d'avoir un message customisé quand ce champ n'est pas rempli dans le formulaire.
En vous remerciant d'avance chers amis de la communauté, Le bleu
.
Raymond [mvp]
Bonjour Luis.
D'accord avec toi, c'est une solution, mais pas dans Form_Current, dans Form_BeforeUpdate car il peut y avoir d'autres contrôles.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de news:27e3501c463f1$03ac53f0$ Bonjour Raymond, Moi j'ai fait quelque chose comme ça: Private Sub Form_Current() DoCmd.Maximize
If IsNull(Me.NomChamp1) Then MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide" Me. NomChamp1.SetFocus End If
If IsNull(Me.NomChamp2) Then MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide" Me. NomChamp2.SetFocus End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous les cas il y a un avertissement pour chaque champ. Je ne sais pas si c'est très rigoureux mais ça fonctionne. Luis
Bonjour Luis.
D'accord avec toi, c'est une solution, mais pas dans Form_Current, dans
Form_BeforeUpdate car il peut y avoir d'autres contrôles.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:27e3501c463f1$03ac53f0$a401280a@phx.gbl...
Bonjour Raymond,
Moi j'ai fait quelque chose comme ça:
Private Sub Form_Current()
DoCmd.Maximize
If IsNull(Me.NomChamp1) Then
MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide"
Me. NomChamp1.SetFocus
End If
If IsNull(Me.NomChamp2) Then
MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide"
Me. NomChamp2.SetFocus
End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous
les cas il y a un avertissement pour chaque champ.
Je ne sais pas si c'est très rigoureux mais ça fonctionne.
Luis
D'accord avec toi, c'est une solution, mais pas dans Form_Current, dans Form_BeforeUpdate car il peut y avoir d'autres contrôles.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de news:27e3501c463f1$03ac53f0$ Bonjour Raymond, Moi j'ai fait quelque chose comme ça: Private Sub Form_Current() DoCmd.Maximize
If IsNull(Me.NomChamp1) Then MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide" Me. NomChamp1.SetFocus End If
If IsNull(Me.NomChamp2) Then MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide" Me. NomChamp2.SetFocus End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous les cas il y a un avertissement pour chaque champ. Je ne sais pas si c'est très rigoureux mais ça fonctionne. Luis
Luis
Merci Raymond. Luis
-----Message d'origine----- Bonjour Luis.
D'accord avec toi, c'est une solution, mais pas dans Form_Current, dans
Form_BeforeUpdate car il peut y avoir d'autres contrôles.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de
news:27e3501c463f1$03ac53f0$ Bonjour Raymond, Moi j'ai fait quelque chose comme ça: Private Sub Form_Current() DoCmd.Maximize
If IsNull(Me.NomChamp1) Then MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide" Me. NomChamp1.SetFocus End If
If IsNull(Me.NomChamp2) Then MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide" Me. NomChamp2.SetFocus End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous les cas il y a un avertissement pour chaque champ. Je ne sais pas si c'est très rigoureux mais ça fonctionne. Luis
.
Merci Raymond.
Luis
-----Message d'origine-----
Bonjour Luis.
D'accord avec toi, c'est une solution, mais pas dans
Form_Current, dans
Form_BeforeUpdate car il peut y avoir d'autres contrôles.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:27e3501c463f1$03ac53f0$a401280a@phx.gbl...
Bonjour Raymond,
Moi j'ai fait quelque chose comme ça:
Private Sub Form_Current()
DoCmd.Maximize
If IsNull(Me.NomChamp1) Then
MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide"
Me. NomChamp1.SetFocus
End If
If IsNull(Me.NomChamp2) Then
MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide"
Me. NomChamp2.SetFocus
End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous
les cas il y a un avertissement pour chaque champ.
Je ne sais pas si c'est très rigoureux mais ça fonctionne.
Luis
D'accord avec toi, c'est une solution, mais pas dans Form_Current, dans
Form_BeforeUpdate car il peut y avoir d'autres contrôles.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de
news:27e3501c463f1$03ac53f0$ Bonjour Raymond, Moi j'ai fait quelque chose comme ça: Private Sub Form_Current() DoCmd.Maximize
If IsNull(Me.NomChamp1) Then MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide" Me. NomChamp1.SetFocus End If
If IsNull(Me.NomChamp2) Then MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide" Me. NomChamp2.SetFocus End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous les cas il y a un avertissement pour chaque champ. Je ne sais pas si c'est très rigoureux mais ça fonctionne. Luis
.
Jessy Sempere [MVP]
Bonjour
Sinon tu peux utiliser ce code, tu le places dans un module général, l'avantage est que tu n'auras pas à refaire ton code pour chaque formulaire
******************************************************** Public Function DataNull() As String '** Retourne une chaine de caractère contenant le nom '** de tous les contrôles (zone de texte, zone de liste, '** zone de liste modifiable) qui n'ont pas été renseignés.
Dim frm As Form Dim ctl As Control Dim strMsg As String
Set frm = Screen.ActiveForm
For Each ctl In frm.Controls If ctl.ControlType = acTextBox _ Or ctl.ControlType = acListBox _ Or ctl.ControlType = acComboBox Then If IsNull(ctl.Value) Or ctl.Value = "" Then _ strMsg = strMsg & vbCrLf & vbTab & "- " & ctl.name End If Next
If strMsg <> "" Then DataNull = "Vous devez saisir : " & vbCrLf & strMsg
'** Mettre le code qui suit dans le formulaire '** Private Sub Form_Unload(Cancel As Integer) '** Dim strMsg As String '** strMsg = DataNull '** If strMsg <> "" Then Cancel = True: MsgBox strMsg, vbCritical '** End Sub
End Function ********************************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Luis" a écrit dans le message news: 27d3801c463f6$fe210ce0$ Merci Raymond. Luis
-----Message d'origine----- Bonjour Luis.
D'accord avec toi, c'est une solution, mais pas dans Form_Current, dans
Form_BeforeUpdate car il peut y avoir d'autres contrôles.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de
news:27e3501c463f1$03ac53f0$ Bonjour Raymond, Moi j'ai fait quelque chose comme ça: Private Sub Form_Current() DoCmd.Maximize
If IsNull(Me.NomChamp1) Then MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide" Me. NomChamp1.SetFocus End If
If IsNull(Me.NomChamp2) Then MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide" Me. NomChamp2.SetFocus End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous les cas il y a un avertissement pour chaque champ. Je ne sais pas si c'est très rigoureux mais ça fonctionne. Luis
.
Bonjour
Sinon tu peux utiliser ce code, tu le places dans un module général,
l'avantage est que tu n'auras pas à refaire ton code pour chaque formulaire
********************************************************
Public Function DataNull() As String
'** Retourne une chaine de caractère contenant le nom
'** de tous les contrôles (zone de texte, zone de liste,
'** zone de liste modifiable) qui n'ont pas été renseignés.
Dim frm As Form
Dim ctl As Control
Dim strMsg As String
Set frm = Screen.ActiveForm
For Each ctl In frm.Controls
If ctl.ControlType = acTextBox _
Or ctl.ControlType = acListBox _
Or ctl.ControlType = acComboBox Then
If IsNull(ctl.Value) Or ctl.Value = "" Then _
strMsg = strMsg & vbCrLf & vbTab & "- " & ctl.name
End If
Next
If strMsg <> "" Then DataNull = "Vous devez saisir : " & vbCrLf & strMsg
'** Mettre le code qui suit dans le formulaire
'** Private Sub Form_Unload(Cancel As Integer)
'** Dim strMsg As String
'** strMsg = DataNull
'** If strMsg <> "" Then Cancel = True: MsgBox strMsg, vbCritical
'** End Sub
End Function
********************************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Luis" <anonymous@discussions.microsoft.com> a écrit dans le message news:
27d3801c463f6$fe210ce0$a501280a@phx.gbl...
Merci Raymond.
Luis
-----Message d'origine-----
Bonjour Luis.
D'accord avec toi, c'est une solution, mais pas dans
Form_Current, dans
Form_BeforeUpdate car il peut y avoir d'autres contrôles.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:27e3501c463f1$03ac53f0$a401280a@phx.gbl...
Bonjour Raymond,
Moi j'ai fait quelque chose comme ça:
Private Sub Form_Current()
DoCmd.Maximize
If IsNull(Me.NomChamp1) Then
MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide"
Me. NomChamp1.SetFocus
End If
If IsNull(Me.NomChamp2) Then
MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide"
Me. NomChamp2.SetFocus
End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous
les cas il y a un avertissement pour chaque champ.
Je ne sais pas si c'est très rigoureux mais ça fonctionne.
Luis
Sinon tu peux utiliser ce code, tu le places dans un module général, l'avantage est que tu n'auras pas à refaire ton code pour chaque formulaire
******************************************************** Public Function DataNull() As String '** Retourne une chaine de caractère contenant le nom '** de tous les contrôles (zone de texte, zone de liste, '** zone de liste modifiable) qui n'ont pas été renseignés.
Dim frm As Form Dim ctl As Control Dim strMsg As String
Set frm = Screen.ActiveForm
For Each ctl In frm.Controls If ctl.ControlType = acTextBox _ Or ctl.ControlType = acListBox _ Or ctl.ControlType = acComboBox Then If IsNull(ctl.Value) Or ctl.Value = "" Then _ strMsg = strMsg & vbCrLf & vbTab & "- " & ctl.name End If Next
If strMsg <> "" Then DataNull = "Vous devez saisir : " & vbCrLf & strMsg
'** Mettre le code qui suit dans le formulaire '** Private Sub Form_Unload(Cancel As Integer) '** Dim strMsg As String '** strMsg = DataNull '** If strMsg <> "" Then Cancel = True: MsgBox strMsg, vbCritical '** End Sub
End Function ********************************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Luis" a écrit dans le message news: 27d3801c463f6$fe210ce0$ Merci Raymond. Luis
-----Message d'origine----- Bonjour Luis.
D'accord avec toi, c'est une solution, mais pas dans Form_Current, dans
Form_BeforeUpdate car il peut y avoir d'autres contrôles.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Luis" a écrit dans le message de
news:27e3501c463f1$03ac53f0$ Bonjour Raymond, Moi j'ai fait quelque chose comme ça: Private Sub Form_Current() DoCmd.Maximize
If IsNull(Me.NomChamp1) Then MsgBox "ATTENTION! Le NomChamp1 ne doit pas rester vide" Me. NomChamp1.SetFocus End If
If IsNull(Me.NomChamp2) Then MsgBox "ATTENTION! Le NomChamp2 ne doit pas rester vide" Me. NomChamp2.SetFocus End If
End Sub
Bien sûr ça n'empêche pas de passer outre mais dans tous les cas il y a un avertissement pour chaque champ. Je ne sais pas si c'est très rigoureux mais ça fonctionne. Luis