OVH Cloud OVH Cloud

NotInList

5 réponses
Avatar
JFP
Bonjour,

Soit une zone de liste déroulante qui doit me servir tout aussi bien à
sélectionner un élément de la liste qu'à y ajouter une nouvel élément. Pour
ce faire, j'exploite l'évènement NotInList de la façon suivante :

Private Sub ajout_mot_cle_NotInList(NewData As String, Response As Integer)

Set Db = CurrentDb
Set rs = Db.OpenRecordset("T-mots cles", dbOpenDynaset)

With rs
.AddNew
.[mot cle] = NewData
.Update
End With
rs.Close
Response = acDataErrAdded

End Sub

Jusque là, tout va bien.
Là où ça coince c'est que je veux débarasser le nouvel élément de ses
éventuels acccents. J'utilise pour ça une fonction de mon cru qui fonctionne
parfaitement, en faisant précéder la séquence with / End with de la ligne :

New Data = RemplaceAccents(NewData)

Conséquences :
- le système ajoute bien la NewData expurgée de ses accents à la liste
(tout va bien),
- Mais, horreur, me renvoie immédiatement aprés le message "Le texte
entré n'est
pas un élément de la liste" ; ceci étant probablement lié au fait (??) que
la Newdata non modifiée est resté "apparente" dans la zone de saisie de ma
liste déroulante.

Comment éviter ce micmac ?
Merci de votre aide,
JFP

5 réponses

Avatar
Pierre CFI [mvp]
bonjour
là, il faut jouer dans l'ordre de tes évenements
essaie de mettre la transformation des accents sur le beforeupdate de ton controle
Me.liste = RemplaceAccents(Me.liste)
et pas dans le notinmist


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"JFP" a écrit dans le message de news:41aed53d$1$9027$
Bonjour,

Soit une zone de liste déroulante qui doit me servir tout aussi bien à
sélectionner un élément de la liste qu'à y ajouter une nouvel élément. Pour
ce faire, j'exploite l'évènement NotInList de la façon suivante :

Private Sub ajout_mot_cle_NotInList(NewData As String, Response As Integer)

Set Db = CurrentDb
Set rs = Db.OpenRecordset("T-mots cles", dbOpenDynaset)

With rs
.AddNew
.[mot cle] = NewData
.Update
End With
rs.Close
Response = acDataErrAdded

End Sub

Jusque là, tout va bien.
Là où ça coince c'est que je veux débarasser le nouvel élément de ses
éventuels acccents. J'utilise pour ça une fonction de mon cru qui fonctionne
parfaitement, en faisant précéder la séquence with / End with de la ligne :

New Data = RemplaceAccents(NewData)

Conséquences :
- le système ajoute bien la NewData expurgée de ses accents à la liste
(tout va bien),
- Mais, horreur, me renvoie immédiatement aprés le message "Le texte
entré n'est
pas un élément de la liste" ; ceci étant probablement lié au fait (??) que
la Newdata non modifiée est resté "apparente" dans la zone de saisie de ma
liste déroulante.

Comment éviter ce micmac ?
Merci de votre aide,
JFP






Avatar
JFP
Subtil !...
mais ça coince encore :

la requête sous-jacente de ma liste est la suivante :
SELECT [T-mots cles].[index mot cle], [T-mots cles].[mot cle]
FROM [T-mots cles]
ORDER BY [T-mots cles].[mot cle];

le champ [index mots cles] est la clé primaire de ma table, et il est
"caché" dans la liste déroulante.
j'ai donc adapté ton instruction en :

Me.[ajout mot cle].Column(1) = RemplaceAccents(Me.[ajout mot cle].Column(1))

Conséquence :
erreur d'exécution 424 : objet requis
et il semble que ça concerne le premier membre de l'instruction. Est-ce lié
à ma clé d'index ?
comment m'en sortir ?

merci de ton aide,
JFP


"Pierre CFI [mvp]" a écrit dans le message de
news: #
bonjour
là, il faut jouer dans l'ordre de tes évenements
essaie de mettre la transformation des accents sur le beforeupdate de ton
controle

Me.liste = RemplaceAccents(Me.liste)
et pas dans le notinmist


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"JFP" a écrit dans le message de
news:41aed53d$1$9027$

Bonjour,

Soit une zone de liste déroulante qui doit me servir tout aussi bien à
sélectionner un élément de la liste qu'à y ajouter une nouvel élément.
Pour


ce faire, j'exploite l'évènement NotInList de la façon suivante :

Private Sub ajout_mot_cle_NotInList(NewData As String, Response As
Integer)



Set Db = CurrentDb
Set rs = Db.OpenRecordset("T-mots cles", dbOpenDynaset)

With rs
.AddNew
.[mot cle] = NewData
.Update
End With
rs.Close
Response = acDataErrAdded

End Sub

Jusque là, tout va bien.
Là où ça coince c'est que je veux débarasser le nouvel élément de ses
éventuels acccents. J'utilise pour ça une fonction de mon cru qui
fonctionne


parfaitement, en faisant précéder la séquence with / End with de la
ligne :



New Data = RemplaceAccents(NewData)

Conséquences :
- le système ajoute bien la NewData expurgée de ses accents à la
liste


(tout va bien),
- Mais, horreur, me renvoie immédiatement aprés le message "Le
texte


entré n'est
pas un élément de la liste" ; ceci étant probablement lié au fait (??)
que


la Newdata non modifiée est resté "apparente" dans la zone de saisie de
ma


liste déroulante.

Comment éviter ce micmac ?
Merci de votre aide,
JFP










Avatar
JFP
Suite à mon message précédent, et au nouveau message d'erreur (objet
requis), j'ai essayé la syntaxe :

Me![ajout mot cle].Column(1) = RemplaceCaractere(Me![ajout mot
cle].Column(1))

(remplacement de Me. par Me!)

Conséquence :
"La procédure Property Let n'est pas définie et la procédure Property Get
n'a pas renvoyé d'objet (erreur 451)"

Au secours !!!
JFP

"Pierre CFI [mvp]" a écrit dans le message de
news: #
bonjour
là, il faut jouer dans l'ordre de tes évenements
essaie de mettre la transformation des accents sur le beforeupdate de ton
controle

Me.liste = RemplaceAccents(Me.liste)
et pas dans le notinmist


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"JFP" a écrit dans le message de
news:41aed53d$1$9027$

Bonjour,

Soit une zone de liste déroulante qui doit me servir tout aussi bien à
sélectionner un élément de la liste qu'à y ajouter une nouvel élément.
Pour


ce faire, j'exploite l'évènement NotInList de la façon suivante :

Private Sub ajout_mot_cle_NotInList(NewData As String, Response As
Integer)



Set Db = CurrentDb
Set rs = Db.OpenRecordset("T-mots cles", dbOpenDynaset)

With rs
.AddNew
.[mot cle] = NewData
.Update
End With
rs.Close
Response = acDataErrAdded

End Sub

Jusque là, tout va bien.
Là où ça coince c'est que je veux débarasser le nouvel élément de ses
éventuels acccents. J'utilise pour ça une fonction de mon cru qui
fonctionne


parfaitement, en faisant précéder la séquence with / End with de la
ligne :



New Data = RemplaceAccents(NewData)

Conséquences :
- le système ajoute bien la NewData expurgée de ses accents à la
liste


(tout va bien),
- Mais, horreur, me renvoie immédiatement aprés le message "Le
texte


entré n'est
pas un élément de la liste" ; ceci étant probablement lié au fait (??)
que


la Newdata non modifiée est resté "apparente" dans la zone de saisie de
ma


liste déroulante.

Comment éviter ce micmac ?
Merci de votre aide,
JFP










Avatar
Pierre CFI [mvp]
.../...
je viens de regarder, en fait notinlist se produit avant le beforeupdate, donc, il faudrait intercepter les accents au fur et à
mesure de la frappe
je te laisse essayer :o)) à moins que raymond nous sorte un truc de ses poches profondes


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"JFP" a écrit dans le message de news:41aedf9d$0$8087$
Subtil !...
mais ça coince encore :

la requête sous-jacente de ma liste est la suivante :
SELECT [T-mots cles].[index mot cle], [T-mots cles].[mot cle]
FROM [T-mots cles]
ORDER BY [T-mots cles].[mot cle];

le champ [index mots cles] est la clé primaire de ma table, et il est
"caché" dans la liste déroulante.
j'ai donc adapté ton instruction en :

Me.[ajout mot cle].Column(1) = RemplaceAccents(Me.[ajout mot cle].Column(1))

Conséquence :
erreur d'exécution 424 : objet requis
et il semble que ça concerne le premier membre de l'instruction. Est-ce lié
à ma clé d'index ?
comment m'en sortir ?

merci de ton aide,
JFP


"Pierre CFI [mvp]" a écrit dans le message de
news: #
bonjour
là, il faut jouer dans l'ordre de tes évenements
essaie de mettre la transformation des accents sur le beforeupdate de ton
controle

Me.liste = RemplaceAccents(Me.liste)
et pas dans le notinmist


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"JFP" a écrit dans le message de
news:41aed53d$1$9027$

Bonjour,

Soit une zone de liste déroulante qui doit me servir tout aussi bien à
sélectionner un élément de la liste qu'à y ajouter une nouvel élément.
Pour


ce faire, j'exploite l'évènement NotInList de la façon suivante :

Private Sub ajout_mot_cle_NotInList(NewData As String, Response As
Integer)



Set Db = CurrentDb
Set rs = Db.OpenRecordset("T-mots cles", dbOpenDynaset)

With rs
.AddNew
.[mot cle] = NewData
.Update
End With
rs.Close
Response = acDataErrAdded

End Sub

Jusque là, tout va bien.
Là où ça coince c'est que je veux débarasser le nouvel élément de ses
éventuels acccents. J'utilise pour ça une fonction de mon cru qui
fonctionne


parfaitement, en faisant précéder la séquence with / End with de la
ligne :



New Data = RemplaceAccents(NewData)

Conséquences :
- le système ajoute bien la NewData expurgée de ses accents à la
liste


(tout va bien),
- Mais, horreur, me renvoie immédiatement aprés le message "Le
texte


entré n'est
pas un élément de la liste" ; ceci étant probablement lié au fait (??)
que


la Newdata non modifiée est resté "apparente" dans la zone de saisie de
ma


liste déroulante.

Comment éviter ce micmac ?
Merci de votre aide,
JFP














Avatar
JFP
..."intercepter les accents au fur et à mesure de la frappe"...
Je sens que ça va être simple ça !!
allez, je vais m'arracher les quelques cheveux qui me restent (j'en ai
consommé beaucoup ce matin !)

Merci de ton aide !
JFP


"Pierre CFI [mvp]" a écrit dans le message de
news: #
.../...
je viens de regarder, en fait notinlist se produit avant le beforeupdate,
donc, il faudrait intercepter les accents au fur et à

mesure de la frappe
je te laisse essayer :o)) à moins que raymond nous sorte un truc de ses
poches profondes



--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"JFP" a écrit dans le message de
news:41aedf9d$0$8087$

Subtil !...
mais ça coince encore :

la requête sous-jacente de ma liste est la suivante :
SELECT [T-mots cles].[index mot cle], [T-mots cles].[mot cle]
FROM [T-mots cles]
ORDER BY [T-mots cles].[mot cle];

le champ [index mots cles] est la clé primaire de ma table, et il est
"caché" dans la liste déroulante.
j'ai donc adapté ton instruction en :

Me.[ajout mot cle].Column(1) = RemplaceAccents(Me.[ajout mot
cle].Column(1))



Conséquence :
erreur d'exécution 424 : objet requis
et il semble que ça concerne le premier membre de l'instruction. Est-ce
lié


à ma clé d'index ?
comment m'en sortir ?

merci de ton aide,
JFP


"Pierre CFI [mvp]" a écrit dans le message de
news: #
bonjour
là, il faut jouer dans l'ordre de tes évenements
essaie de mettre la transformation des accents sur le beforeupdate de
ton



controle
Me.liste = RemplaceAccents(Me.liste)
et pas dans le notinmist


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"JFP" a écrit dans le message de
news:41aed53d$1$9027$

Bonjour,

Soit une zone de liste déroulante qui doit me servir tout aussi bien
à




sélectionner un élément de la liste qu'à y ajouter une nouvel
élément.




Pour
ce faire, j'exploite l'évènement NotInList de la façon suivante :

Private Sub ajout_mot_cle_NotInList(NewData As String, Response As
Integer)



Set Db = CurrentDb
Set rs = Db.OpenRecordset("T-mots cles", dbOpenDynaset)

With rs
.AddNew
.[mot cle] = NewData
.Update
End With
rs.Close
Response = acDataErrAdded

End Sub

Jusque là, tout va bien.
Là où ça coince c'est que je veux débarasser le nouvel élément de
ses




éventuels acccents. J'utilise pour ça une fonction de mon cru qui
fonctionne


parfaitement, en faisant précéder la séquence with / End with de la
ligne :



New Data = RemplaceAccents(NewData)

Conséquences :
- le système ajoute bien la NewData expurgée de ses accents à la
liste


(tout va bien),
- Mais, horreur, me renvoie immédiatement aprés le message "Le
texte


entré n'est
pas un élément de la liste" ; ceci étant probablement lié au fait
(??)




que
la Newdata non modifiée est resté "apparente" dans la zone de saisie
de




ma
liste déroulante.

Comment éviter ce micmac ?
Merci de votre aide,
JFP