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
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
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
"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
"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
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
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" <3stone_@_skynet_be> a écrit dans le message de news:
e7lzQ3$yFHA.1856@TK2MSFTNGP12.phx.gbl...
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
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
"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
"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
"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
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
dans le formulaire de saisie qui s'ouvre, "saisie d'une monaie" et sur
fermeture, je met ma liste deroulante a jour.
"3stone" <3stone_@_skynet_be> a écrit dans le message de news:
eAmGnYAzFHA.1028@TK2MSFTNGP12.phx.gbl...
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
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
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
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" <Rvdb.roger@free.fr> a écrit dans le message de
news:4347d5a0$0$18834$636a55ce@news.free.fr...
dans le formulaire de saisie qui s'ouvre, "saisie d'une monaie" et sur
fermeture, je met ma liste deroulante a jour.
"3stone" <3stone_@_skynet_be> a écrit dans le message de news:
eAmGnYAzFHA.1028@TK2MSFTNGP12.phx.gbl...
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
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