OVH Cloud OVH Cloud

bizare! bizare

5 réponses
Avatar
le méruvien
bonjour, le 18/09, j'avais soumis un problème, qui a été vite résolu (je
croyait) par Pierre, malheureusement, ce problème ce reproduit aujourd'hui,
malgrés que j'ai fait comme il disait!
voila le problème:
Sur absence dans une liste déroulante, j'ai mis cette procédure, qui
fonctionne bien, mais malgre ma réponse OK, m'affiche un message "le texte
n'est pas dans la liste..."
Voila ma procédure:
Private Sub monaie_NotInList(NewData As String, Response As Integer)
Me!monaie = ""
If MsgBox("Voulez-vous ajouter ce nom?", vbOKCancel) = vbOK Then
formulaire = "pièces"
DoCmd.OpenForm "saisie d'une monaie", acNormal, , , acFormAdd
Exit Sub
Else
Response = acDataErrContinue ' *** ligne ajouté selon les conseils
de Pierre
End If
End Sub

5 réponses

Avatar
3stone
Salut,

"le méruvien"
| Sur absence dans une liste déroulante, j'ai mis cette procédure, qui
| fonctionne bien, mais malgre ma réponse OK, m'affiche un message "le texte
| n'est pas dans la liste..."
| Voila ma procédure:
| Private Sub monaie_NotInList(NewData As String, Response As Integer)
| Me!monaie = ""
| If MsgBox("Voulez-vous ajouter ce nom?", vbOKCancel) = vbOK Then
| formulaire = "pièces"
| DoCmd.OpenForm "saisie d'une monaie", acNormal, , , acFormAdd
| Exit Sub
| Else
| Response = acDataErrContinue ' *** ligne ajouté selon les conseils
| de Pierre
| End If
| End Sub



Regarde ceci :
http://users.skynet.be/accesshome/ah_formulaires_ajoutdanszonedeliste.htm


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
le méruvien
Salut,
je suis peut etre dur , mais quelle difference avec ma procédure ??
(j'ai ajouter sous "Response = acDataErrContinue" la ligne
me![monaie].undo
mais ça marche toujours pas !




"3stone" a écrit dans le message de news:
e7lzQ3$
Salut,

"le méruvien"
| Sur absence dans une liste déroulante, j'ai mis cette procédure, qui
| fonctionne bien, mais malgre ma réponse OK, m'affiche un message "le
texte
| n'est pas dans la liste..."
| Voila ma procédure:
| Private Sub monaie_NotInList(NewData As String, Response As Integer)
| Me!monaie = ""
| If MsgBox("Voulez-vous ajouter ce nom?", vbOKCancel) = vbOK Then
| formulaire = "pièces"
| DoCmd.OpenForm "saisie d'une monaie", acNormal, , , acFormAdd
| Exit Sub
| Else
| Response = acDataErrContinue ' *** ligne ajouté selon les
conseils
| de Pierre
| End If
| End Sub



Regarde ceci :
http://users.skynet.be/accesshome/ah_formulaires_ajoutdanszonedeliste.htm


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/



Avatar
3stone
Salut Roger,

"le méruvien"
| je suis peut etre dur , mais quelle difference avec ma procédure ??


Dans ta procédure, à quel moment ajoute tu la valeur de NewData ??


| Private Sub monaie_NotInList(NewData As String, Response As Integer)
| Me!monaie = ""
| If MsgBox("Voulez-vous ajouter ce nom?", vbOKCancel) = vbOK Then
| formulaire = "pièces"
| DoCmd.OpenForm "saisie d'une monaie", acNormal, , , acFormAdd
| Exit Sub
| Else
| Response = acDataErrContinue
| End If
| End Sub




--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
le méruvien
dans le formulaire de saisie qui s'ouvre, "saisie d'une monaie" et sur
fermeture, je met ma liste deroulante a jour.


"3stone" a écrit dans le message de news:

Salut Roger,

"le méruvien"
| je suis peut etre dur , mais quelle difference avec ma procédure ??


Dans ta procédure, à quel moment ajoute tu la valeur de NewData ??


| Private Sub monaie_NotInList(NewData As String, Response As Integer)
| Me!monaie = ""
| If MsgBox("Voulez-vous ajouter ce nom?", vbOKCancel) = vbOK Then
| formulaire = "pièces"
| DoCmd.OpenForm "saisie d'une monaie", acNormal, , , acFormAdd
| Exit Sub
| Else
| Response = acDataErrContinue
| End If
| End Sub




--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/



Avatar
Bruno G.
Ton acDataErrContinue n'est pas pris en compte puisque tu fais un Exit Sub
après avoir rempli ton form.
Enlève ton exit sub et ton else et mets le acDataErrContinue en dernière
ligne.

Ceci dit, ton approche ne me semble pas très ergonomique puisque il faudra
que tu ressaisisses une nouvelle fois ta valeur dans la zone de liste.
Conceptuellement, ce n'est pas très bien joué non plus, car dans ton
formulaire "Saisie d'une monaie" (événement fermeture) tu fais une
référence explicite à ton formulaire appelant . Aïe Aïe pour la maintenance
et les évolutions futures. Comment feras tu par exemple si tu veux créer des
monaies à partir d'autres formulaires.
(à moins que ce soit pour ça que tu utilises la variable "formulaire", mais
bon, même avec cet astuce ça reste lourd)

Moi, je le jouerais comme ça :

Private Sub monaie_NotInList(NewData As String, Response As Integer)
If MsgBox("Voulez-vous ajouter ce nom?", vbOKCancel) = vbOK Then
formulaire = "pièces"
DoCmd.OpenForm "saisie d'une monaie", acNormal, , , acFormAdd,
acDialog
Response = acDataErrAdded
Else
Response = acDataErrContinue
monaie.Undo
End If
End Sub

Dans ton form "saisie d'une monaie" , tu enlèves tout ce qui concerne
l'actualisation de ta liste (ça ce fera tout seul grace au acDataErrAdded)
Tu peux te servir de l'openArg pour initialiser ton champ.
Attention ça ne marche que si tu es en acDialog.

@+
Bruno


"le méruvien" a écrit dans le message de
news:4347d5a0$0$18834$
dans le formulaire de saisie qui s'ouvre, "saisie d'une monaie" et sur
fermeture, je met ma liste deroulante a jour.


"3stone" a écrit dans le message de news:

Salut Roger,

"le méruvien"
| je suis peut etre dur , mais quelle difference avec ma procédure ??


Dans ta procédure, à quel moment ajoute tu la valeur de NewData ??


| Private Sub monaie_NotInList(NewData As String, Response As Integer)
| Me!monaie = ""
| If MsgBox("Voulez-vous ajouter ce nom?", vbOKCancel) = vbOK Then
| formulaire = "pièces"
| DoCmd.OpenForm "saisie d'une monaie", acNormal, , , acFormAdd
| Exit Sub
| Else
| Response = acDataErrContinue
| End If
| End Sub




--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/