Voici le message que j'avais écrit précédemment sur le forum le 6 août:
Ds un form de saisie d'enregistrement, je voudrais que pour effectuer une
certaine procédure, il faille remplir la totalité des champs au préalable.
Voilà mon code VBA qui ne marche cependant pas à tous les coups :
If IsNull (Me.txtTitre) Or IsNull (Me.txtDate) Or IsNull (Me.txtLien) Or
IsNull (Me.txtModifAuteur) Or IsNull (Me.txtModifOperateur) Then
Msgbox "Toutes les zones ci-dessus doivent être renseignées !", vbOKOnly,
"Erreur dans la saisie"
Il semble que ma structure (bien que tout à fait correct selon Raymond) soit
une vraie passoire et laisse passer certaines choses malgré tout ;-))) !!!
A noter que ma structure conditionnelle est positionnée en début de
procédure et que lorsque ça bug, le type de champs semble aléatoire.
Encore mieux ! Lorsque ça bug, je rétère l'opération en mode "pas à pas" et
cela marche parfaitement. Je désactive ce mode "pas à pas" et cela fonctionne
correctement mais... pour combien de temps
Alors ? Un bug d'Access ou mauvaise manip' de ma part ?
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]
Si tu penses que c'est un bug access, et si ça fonctionne en pas à pas ( quelquefois normal) il faut éliminer certaines possibilités d'erreurs du compilateur et passer sur le niveau de code le plus bas pour ensuite éventuellement le remonter si ça fonctionne.
Faire: 1er essai: If (IsNull(Me.txtTitre)) Or _ (IsNull(Me.txtDate)) Or _ (IsNull(Me.txtLien)) Or _ (IsNull(Me.txtModifAuteur)) Or _ (IsNull(Me.txtModifOperateur)) Then MsgBox "Toutes les zones ci-dessus doivent être renseignées !" End If
2e essai:
If (Not IsNull(Me.txtTitre)) Then If (Not IsNull(Me.txtDate)) Then If (Not IsNull(Me.txtLien)) Then If (Not IsNull(Me.txtModifAuteur)) Then If (Not IsNull(Me.txtModifOperateur)) Then GoTo Continuer End If End If End If End If End If MsgBox "Toutes les zones ci-dessus doivent être renseignées !" Exit Sub Continuer: ' ici la suite
ce n'est pas un modèle de procédure mais une façon d'éliminer les bugs événtuels sur les Or en compilation.
-- @+ 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
"Jérémie" a écrit dans le message de news:
Bonjour,
Voici le message que j'avais écrit précédemment sur le forum le 6 août:
Ds un form de saisie d'enregistrement, je voudrais que pour effectuer une certaine procédure, il faille remplir la totalité des champs au préalable. Voilà mon code VBA qui ne marche cependant pas à tous les coups :
If IsNull (Me.txtTitre) Or IsNull (Me.txtDate) Or IsNull (Me.txtLien) Or IsNull (Me.txtModifAuteur) Or IsNull (Me.txtModifOperateur) Then Msgbox "Toutes les zones ci-dessus doivent être renseignées !", vbOKOnly, "Erreur dans la saisie"
Il semble que ma structure (bien que tout à fait correct selon Raymond) soit
une vraie passoire et laisse passer certaines choses malgré tout ;-))) !!!
A noter que ma structure conditionnelle est positionnée en début de procédure et que lorsque ça bug, le type de champs semble aléatoire.
Encore mieux ! Lorsque ça bug, je rétère l'opération en mode "pas à pas" et
cela marche parfaitement. Je désactive ce mode "pas à pas" et cela fonctionne
correctement mais... pour combien de temps
Alors ? Un bug d'Access ou mauvaise manip' de ma part ?
A vos claviers et merci de vos contributions !
Jérémie
Si tu penses que c'est un bug access, et si ça fonctionne en pas à pas (
quelquefois normal) il faut éliminer certaines possibilités d'erreurs du
compilateur et passer sur le niveau de code le plus bas pour ensuite
éventuellement le remonter si ça fonctionne.
Faire:
1er essai:
If (IsNull(Me.txtTitre)) Or _
(IsNull(Me.txtDate)) Or _
(IsNull(Me.txtLien)) Or _
(IsNull(Me.txtModifAuteur)) Or _
(IsNull(Me.txtModifOperateur)) Then
MsgBox "Toutes les zones ci-dessus doivent être renseignées !"
End If
2e essai:
If (Not IsNull(Me.txtTitre)) Then
If (Not IsNull(Me.txtDate)) Then
If (Not IsNull(Me.txtLien)) Then
If (Not IsNull(Me.txtModifAuteur)) Then
If (Not IsNull(Me.txtModifOperateur)) Then
GoTo Continuer
End If
End If
End If
End If
End If
MsgBox "Toutes les zones ci-dessus doivent être renseignées !"
Exit Sub
Continuer:
' ici la suite
ce n'est pas un modèle de procédure mais une façon d'éliminer les bugs
événtuels sur les Or en compilation.
--
@+
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
"Jérémie" <Jrmie@discussions.microsoft.com> a écrit dans le message de
news:6EC3DA0A-0915-479F-8398-178679C98C1B@microsoft.com...
Bonjour,
Voici le message que j'avais écrit précédemment sur le forum le 6 août:
Ds un form de saisie d'enregistrement, je voudrais que pour effectuer une
certaine procédure, il faille remplir la totalité des champs au préalable.
Voilà mon code VBA qui ne marche cependant pas à tous les coups :
If IsNull (Me.txtTitre) Or IsNull (Me.txtDate) Or IsNull (Me.txtLien) Or
IsNull (Me.txtModifAuteur) Or IsNull (Me.txtModifOperateur) Then
Msgbox "Toutes les zones ci-dessus doivent être renseignées !", vbOKOnly,
"Erreur dans la saisie"
Il semble que ma structure (bien que tout à fait correct selon Raymond)
soit
une vraie passoire et laisse passer certaines choses malgré tout ;-))) !!!
A noter que ma structure conditionnelle est positionnée en début de
procédure et que lorsque ça bug, le type de champs semble aléatoire.
Encore mieux ! Lorsque ça bug, je rétère l'opération en mode "pas à pas"
et
cela marche parfaitement. Je désactive ce mode "pas à pas" et cela
fonctionne
correctement mais... pour combien de temps
Alors ? Un bug d'Access ou mauvaise manip' de ma part ?
Si tu penses que c'est un bug access, et si ça fonctionne en pas à pas ( quelquefois normal) il faut éliminer certaines possibilités d'erreurs du compilateur et passer sur le niveau de code le plus bas pour ensuite éventuellement le remonter si ça fonctionne.
Faire: 1er essai: If (IsNull(Me.txtTitre)) Or _ (IsNull(Me.txtDate)) Or _ (IsNull(Me.txtLien)) Or _ (IsNull(Me.txtModifAuteur)) Or _ (IsNull(Me.txtModifOperateur)) Then MsgBox "Toutes les zones ci-dessus doivent être renseignées !" End If
2e essai:
If (Not IsNull(Me.txtTitre)) Then If (Not IsNull(Me.txtDate)) Then If (Not IsNull(Me.txtLien)) Then If (Not IsNull(Me.txtModifAuteur)) Then If (Not IsNull(Me.txtModifOperateur)) Then GoTo Continuer End If End If End If End If End If MsgBox "Toutes les zones ci-dessus doivent être renseignées !" Exit Sub Continuer: ' ici la suite
ce n'est pas un modèle de procédure mais une façon d'éliminer les bugs événtuels sur les Or en compilation.
-- @+ 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
"Jérémie" a écrit dans le message de news:
Bonjour,
Voici le message que j'avais écrit précédemment sur le forum le 6 août:
Ds un form de saisie d'enregistrement, je voudrais que pour effectuer une certaine procédure, il faille remplir la totalité des champs au préalable. Voilà mon code VBA qui ne marche cependant pas à tous les coups :
If IsNull (Me.txtTitre) Or IsNull (Me.txtDate) Or IsNull (Me.txtLien) Or IsNull (Me.txtModifAuteur) Or IsNull (Me.txtModifOperateur) Then Msgbox "Toutes les zones ci-dessus doivent être renseignées !", vbOKOnly, "Erreur dans la saisie"
Il semble que ma structure (bien que tout à fait correct selon Raymond) soit
une vraie passoire et laisse passer certaines choses malgré tout ;-))) !!!
A noter que ma structure conditionnelle est positionnée en début de procédure et que lorsque ça bug, le type de champs semble aléatoire.
Encore mieux ! Lorsque ça bug, je rétère l'opération en mode "pas à pas" et
cela marche parfaitement. Je désactive ce mode "pas à pas" et cela fonctionne
correctement mais... pour combien de temps
Alors ? Un bug d'Access ou mauvaise manip' de ma part ?
A vos claviers et merci de vos contributions !
Jérémie
Jérémie
Merci pour ta méthode mais il y a un pb au niveau de la fonction "GoToControl" :
Erreur d'execution '2046' : la commande ou l'action "Atteindre Contrôle" n'est pas disponible pour l'instant.
D'où cela peut-il venir ?
Merci
Jérémie
Autre moyen très simple que j'utilise et qui fontionne très bien :
(Routine à placer sur l'évènement "On Got Focus" d'un bouton de commande pour la sauvegarde de l'enregistrement par exemple)
If me.[Nomzone] <> "" then Else DoCmd.Gotocontrol "Nomzone" Me.[Nomboutoncommande].Enabled = False Exit Sub End if
(A multiplier autant de fois qu'il y a de zones de saisie.)
Alberto : "Pas MVP mais passionné par la puissance d'Access"
Bonjour,
Voici le message que j'avais écrit précédemment sur le forum le 6 août:
Ds un form de saisie d'enregistrement, je voudrais que pour effectuer une certaine procédure, il faille remplir la totalité des champs au préalable. Voilà mon code VBA qui ne marche cependant pas à tous les coups :
If IsNull (Me.txtTitre) Or IsNull (Me.txtDate) Or IsNull (Me.txtLien) Or IsNull (Me.txtModifAuteur) Or IsNull (Me.txtModifOperateur) Then Msgbox "Toutes les zones ci-dessus doivent être renseignées !", vbOKOnly, "Erreur dans la saisie"
Il semble que ma structure (bien que tout à fait correct selon Raymond) soit une vraie passoire et laisse passer certaines choses malgré tout ;-))) !!!
A noter que ma structure conditionnelle est positionnée en début de procédure et que lorsque ça bug, le type de champs semble aléatoire.
Encore mieux ! Lorsque ça bug, je rétère l'opération en mode "pas à pas" et cela marche parfaitement. Je désactive ce mode "pas à pas" et cela fonctionne correctement mais... pour combien de temps
Alors ? Un bug d'Access ou mauvaise manip' de ma part ?
A vos claviers et merci de vos contributions !
Jérémie
Merci pour ta méthode mais il y a un pb au niveau de la fonction
"GoToControl" :
Erreur d'execution '2046' : la commande ou l'action "Atteindre Contrôle"
n'est pas disponible pour l'instant.
D'où cela peut-il venir ?
Merci
Jérémie
Autre moyen très simple que j'utilise et qui fontionne très bien :
(Routine à placer sur l'évènement "On Got Focus" d'un bouton de commande
pour la sauvegarde de l'enregistrement par exemple)
If me.[Nomzone] <> "" then
Else
DoCmd.Gotocontrol "Nomzone"
Me.[Nomboutoncommande].Enabled = False
Exit Sub
End if
(A multiplier autant de fois qu'il y a de zones de saisie.)
Alberto : "Pas MVP mais passionné par la puissance d'Access"
Bonjour,
Voici le message que j'avais écrit précédemment sur le forum le 6 août:
Ds un form de saisie d'enregistrement, je voudrais que pour effectuer une
certaine procédure, il faille remplir la totalité des champs au préalable.
Voilà mon code VBA qui ne marche cependant pas à tous les coups :
If IsNull (Me.txtTitre) Or IsNull (Me.txtDate) Or IsNull (Me.txtLien) Or
IsNull (Me.txtModifAuteur) Or IsNull (Me.txtModifOperateur) Then
Msgbox "Toutes les zones ci-dessus doivent être renseignées !", vbOKOnly,
"Erreur dans la saisie"
Il semble que ma structure (bien que tout à fait correct selon Raymond) soit
une vraie passoire et laisse passer certaines choses malgré tout ;-))) !!!
A noter que ma structure conditionnelle est positionnée en début de
procédure et que lorsque ça bug, le type de champs semble aléatoire.
Encore mieux ! Lorsque ça bug, je rétère l'opération en mode "pas à pas" et
cela marche parfaitement. Je désactive ce mode "pas à pas" et cela fonctionne
correctement mais... pour combien de temps
Alors ? Un bug d'Access ou mauvaise manip' de ma part ?
Merci pour ta méthode mais il y a un pb au niveau de la fonction "GoToControl" :
Erreur d'execution '2046' : la commande ou l'action "Atteindre Contrôle" n'est pas disponible pour l'instant.
D'où cela peut-il venir ?
Merci
Jérémie
Autre moyen très simple que j'utilise et qui fontionne très bien :
(Routine à placer sur l'évènement "On Got Focus" d'un bouton de commande pour la sauvegarde de l'enregistrement par exemple)
If me.[Nomzone] <> "" then Else DoCmd.Gotocontrol "Nomzone" Me.[Nomboutoncommande].Enabled = False Exit Sub End if
(A multiplier autant de fois qu'il y a de zones de saisie.)
Alberto : "Pas MVP mais passionné par la puissance d'Access"
Bonjour,
Voici le message que j'avais écrit précédemment sur le forum le 6 août:
Ds un form de saisie d'enregistrement, je voudrais que pour effectuer une certaine procédure, il faille remplir la totalité des champs au préalable. Voilà mon code VBA qui ne marche cependant pas à tous les coups :
If IsNull (Me.txtTitre) Or IsNull (Me.txtDate) Or IsNull (Me.txtLien) Or IsNull (Me.txtModifAuteur) Or IsNull (Me.txtModifOperateur) Then Msgbox "Toutes les zones ci-dessus doivent être renseignées !", vbOKOnly, "Erreur dans la saisie"
Il semble que ma structure (bien que tout à fait correct selon Raymond) soit une vraie passoire et laisse passer certaines choses malgré tout ;-))) !!!
A noter que ma structure conditionnelle est positionnée en début de procédure et que lorsque ça bug, le type de champs semble aléatoire.
Encore mieux ! Lorsque ça bug, je rétère l'opération en mode "pas à pas" et cela marche parfaitement. Je désactive ce mode "pas à pas" et cela fonctionne correctement mais... pour combien de temps
Alors ? Un bug d'Access ou mauvaise manip' de ma part ?