Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Doublons indésirables...

5 réponses
Avatar
Norm
Bonjour,

Sous Access 2003 (SP3) - Windows XP

A) Mise en situation :
Dans un formulaire, une zone de liste déroulante utilisant les données d'une
table sous-jacente, affiche des options disponibles pour l'usager. Lorsque
l'usager choisi une option dans cette liste, l'option choisie s'inscrit
automatiquement dans un autre champ (ex: champ2) du même formulaire. Cet
autre champ (champ2) du formulaire provient aussi d'une autre table
sous-jacente.

B) Problème :
Lorsque le formulaire est réutilisé (fermer puis ouvert de nouveau) et que
l'usager désire effectuer un autre choix dans la liste déroulante, cet autre
choix s'ajoute correctement à ceux effectués précédemment cependant (et
c'est là le problème !), ce nouveau choix s'inscrit automatiquement 2 fois
dans le champ2 lorsque l'usager appui sur la touche TAB pour passer à un
autre champ (sortir de la liste déroulante).

Je reproduis ci-dessous le code actuellement utilisé dans la liste
déroulante permettant d'inscrire une donnée choisie à partir de cette liste
afin qu'elle s'inscrive automatiquement dans le champ2.
Note : "Affectation Site" dans le code ci-dessous est le nom du champ2
recevant automatiquement la donnée choisie dans la liste déroulante. Ce
code est placé dans la propriété Avant MAJ de la liste déroulante.

Private Sub ListeSite_BeforeUpdate(Cancel As Integer)
Me("Affectation Site") = Me("Affectation Site") & Me!ListeSite & ", "
End Sub

Quelle est l'erreur et... la solution si possible.

Merci,
Norm

5 réponses

Avatar
Fabien
Bonjour,

Sous Access 2003 (SP3) - Windows XP

A) Mise en situation :
Dans un formulaire, une zone de liste déroulante utilisant les données d'une
table sous-jacente, affiche des options disponibles pour l'usager. Lorsque
l'usager choisi une option dans cette liste, l'option choisie s'inscrit
automatiquement dans un autre champ (ex: champ2) du même formulaire. Cet
autre champ (champ2) du formulaire provient aussi d'une autre table
sous-jacente.

B) Problème :
Lorsque le formulaire est réutilisé (fermer puis ouvert de nouveau) et que
l'usager désire effectuer un autre choix dans la liste déroulante, cet autre
choix s'ajoute correctement à ceux effectués précédemment cependant (et
c'est là le problème !), ce nouveau choix s'inscrit automatiquement 2 fois
dans le champ2 lorsque l'usager appui sur la touche TAB pour passer à un
autre champ (sortir de la liste déroulante).

Je reproduis ci-dessous le code actuellement utilisé dans la liste
déroulante permettant d'inscrire une donnée choisie à partir de cette liste
afin qu'elle s'inscrive automatiquement dans le champ2.
Note : "Affectation Site" dans le code ci-dessous est le nom du champ2
recevant automatiquement la donnée choisie dans la liste déroulante. Ce
code est placé dans la propriété Avant MAJ de la liste déroulante.

Private Sub ListeSite_BeforeUpdate(Cancel As Integer)


End Sub

Quelle est l'erreur et... la solution si possible.

Merci,
Norm


Salut

Comme ça à l'arrache

Me("Affectation Site") = Me("Affectation Site") &
iif(instr(1,me.affectation_site,Me!ListeSite)=0,me.listesite & ", ","")

a quelque chose prés ;-)

Avatar
Pierre CFI
bonjour
???????????????
là evidement, c'est le contenu plus la liste
et çà
Me("Affectation Site") = Me.ListeSite & ", "
si tu veux vraiment une virgule à la fin


--
Pierre CFI
"Fabien" a écrit dans le message de news:
%
Bonjour,

Sous Access 2003 (SP3) - Windows XP

A) Mise en situation :
Dans un formulaire, une zone de liste déroulante utilisant les données
d'une table sous-jacente, affiche des options disponibles pour l'usager.
Lorsque l'usager choisi une option dans cette liste, l'option choisie
s'inscrit automatiquement dans un autre champ (ex: champ2) du même
formulaire. Cet autre champ (champ2) du formulaire provient aussi d'une
autre table sous-jacente.

B) Problème :
Lorsque le formulaire est réutilisé (fermer puis ouvert de nouveau) et
que l'usager désire effectuer un autre choix dans la liste déroulante,
cet autre choix s'ajoute correctement à ceux effectués précédemment
cependant (et c'est là le problème !), ce nouveau choix s'inscrit
automatiquement 2 fois dans le champ2 lorsque l'usager appui sur la
touche TAB pour passer à un autre champ (sortir de la liste déroulante).

Je reproduis ci-dessous le code actuellement utilisé dans la liste
déroulante permettant d'inscrire une donnée choisie à partir de cette
liste afin qu'elle s'inscrive automatiquement dans le champ2.
Note : "Affectation Site" dans le code ci-dessous est le nom du champ2
recevant automatiquement la donnée choisie dans la liste déroulante. Ce
code est placé dans la propriété Avant MAJ de la liste déroulante.

Private Sub ListeSite_BeforeUpdate(Cancel As Integer)


End Sub

Quelle est l'erreur et... la solution si possible.

Merci,
Norm


Salut

Comme ça à l'arrache

Me("Affectation Site") = Me("Affectation Site") &
iif(instr(1,me.affectation_site,Me!ListeSite)=0,me.listesite & ", ","")

a quelque chose prés ;-)



Avatar
Norm
Bonjour Pierre et Fabien,

Oups! J'ai fait une erreur en reproduisant le code de la liste.. j'ai
inséré celui d'une autre liste du même formulaire qui, elle, fonctionne
correctement sans doublons. Mille excuses à vous deux.

Alors, voici ci-dessous, le code qui pose problème. C'est toujours un choix
qui se fait dans une liste déroulante puis ce choix est transféré dans un
autre champ (Ex: champ2) du même formulaire. Effectivement (pour Pierre),
il faut qu'il y ait une virgule et un espace qui s'inscrivent
automatiquement après l'inscription automatique dans le champ2 lors du choix
fait dans la liste déroulante.

Voici ce code sur propriété BeforeUpdate de la liste déroulante :
Private Sub ListeAct_BeforeUpdate(Cancel As Integer)
Me!ActivitéDispo = Me!ActivitéDispo & Me!ListeAct & ", "
End Sub

P.-S. : J'ai essayé d'adapter la proposition faite par Fabien dans ce code
mais cela ne fonctionne pas. Je rappelle que le problème ne se pose pas
lors de choix faits (même si plusieurs différents et consécutifs) au moment
de la première utilisation de cette fonction dans le formulaire. Le
problème se produit lors d'une utilisation ultérieure de celui-ci en voulant
ajouter de nouveaux choix par l'entremise de la liste déroulante (bizarre...
du moins pour moi!).

Merci encore si vous pouvez identifier mon erreur... personnellement je suis
"perdu".
Norm


"Pierre CFI" a écrit dans le message de news:

bonjour
???????????????
là evidement, c'est le contenu plus la liste
et çà
Me("Affectation Site") = Me.ListeSite & ", "
si tu veux vraiment une virgule à la fin


--
Pierre CFI
"Fabien" a écrit dans le message de news:
%
Bonjour,

Sous Access 2003 (SP3) - Windows XP

A) Mise en situation :
Dans un formulaire, une zone de liste déroulante utilisant les données
d'une table sous-jacente, affiche des options disponibles pour l'usager.
Lorsque l'usager choisi une option dans cette liste, l'option choisie
s'inscrit automatiquement dans un autre champ (ex: champ2) du même
formulaire. Cet autre champ (champ2) du formulaire provient aussi d'une
autre table sous-jacente.

B) Problème :
Lorsque le formulaire est réutilisé (fermer puis ouvert de nouveau) et
que l'usager désire effectuer un autre choix dans la liste déroulante,
cet autre choix s'ajoute correctement à ceux effectués précédemment
cependant (et c'est là le problème !), ce nouveau choix s'inscrit
automatiquement 2 fois dans le champ2 lorsque l'usager appui sur la
touche TAB pour passer à un autre champ (sortir de la liste déroulante).

Je reproduis ci-dessous le code actuellement utilisé dans la liste
déroulante permettant d'inscrire une donnée choisie à partir de cette
liste afin qu'elle s'inscrive automatiquement dans le champ2.
Note : "Affectation Site" dans le code ci-dessous est le nom du champ2
recevant automatiquement la donnée choisie dans la liste déroulante. Ce
code est placé dans la propriété Avant MAJ de la liste déroulante.

Private Sub ListeSite_BeforeUpdate(Cancel As Integer)


End Sub

Quelle est l'erreur et... la solution si possible.

Merci,
Norm


Salut

Comme ça à l'arrache

Me("Affectation Site") = Me("Affectation Site") &
iif(instr(1,me.affectation_site,Me!ListeSite)=0,me.listesite & ", ","")

a quelque chose prés ;-)







Avatar
Pierre CFI
essaie
Me.ActivitéDispo = Me.ActivitéDispo & Me.ListeAct & ", "
pourquoi le beforeupdate et pas le afterupdate ????


--
Pierre CFI
"Norm" a écrit dans le message de news:

Bonjour Pierre et Fabien,

Oups! J'ai fait une erreur en reproduisant le code de la liste.. j'ai
inséré celui d'une autre liste du même formulaire qui, elle, fonctionne
correctement sans doublons. Mille excuses à vous deux.

Alors, voici ci-dessous, le code qui pose problème. C'est toujours un
choix qui se fait dans une liste déroulante puis ce choix est transféré
dans un autre champ (Ex: champ2) du même formulaire. Effectivement (pour
Pierre), il faut qu'il y ait une virgule et un espace qui s'inscrivent
automatiquement après l'inscription automatique dans le champ2 lors du
choix fait dans la liste déroulante.

Voici ce code sur propriété BeforeUpdate de la liste déroulante :
Private Sub ListeAct_BeforeUpdate(Cancel As Integer)
Me!ActivitéDispo = Me!ActivitéDispo & Me!ListeAct & ", "
End Sub

P.-S. : J'ai essayé d'adapter la proposition faite par Fabien dans ce code
mais cela ne fonctionne pas. Je rappelle que le problème ne se pose pas
lors de choix faits (même si plusieurs différents et consécutifs) au
moment de la première utilisation de cette fonction dans le formulaire.
Le problème se produit lors d'une utilisation ultérieure de celui-ci en
voulant ajouter de nouveaux choix par l'entremise de la liste déroulante
(bizarre... du moins pour moi!).

Merci encore si vous pouvez identifier mon erreur... personnellement je
suis "perdu".
Norm


"Pierre CFI" a écrit dans le message de
news:
bonjour
???????????????
là evidement, c'est le contenu plus la liste
et çà
Me("Affectation Site") = Me.ListeSite & ", "
si tu veux vraiment une virgule à la fin


--
Pierre CFI
"Fabien" a écrit dans le message de news:
%
Bonjour,

Sous Access 2003 (SP3) - Windows XP

A) Mise en situation :
Dans un formulaire, une zone de liste déroulante utilisant les données
d'une table sous-jacente, affiche des options disponibles pour
l'usager. Lorsque l'usager choisi une option dans cette liste, l'option
choisie s'inscrit automatiquement dans un autre champ (ex: champ2) du
même formulaire. Cet autre champ (champ2) du formulaire provient aussi
d'une autre table sous-jacente.

B) Problème :
Lorsque le formulaire est réutilisé (fermer puis ouvert de nouveau) et
que l'usager désire effectuer un autre choix dans la liste déroulante,
cet autre choix s'ajoute correctement à ceux effectués précédemment
cependant (et c'est là le problème !), ce nouveau choix s'inscrit
automatiquement 2 fois dans le champ2 lorsque l'usager appui sur la
touche TAB pour passer à un autre champ (sortir de la liste
déroulante).

Je reproduis ci-dessous le code actuellement utilisé dans la liste
déroulante permettant d'inscrire une donnée choisie à partir de cette
liste afin qu'elle s'inscrive automatiquement dans le champ2.
Note : "Affectation Site" dans le code ci-dessous est le nom du champ2
recevant automatiquement la donnée choisie dans la liste déroulante.
Ce code est placé dans la propriété Avant MAJ de la liste déroulante.

Private Sub ListeSite_BeforeUpdate(Cancel As Integer)


End Sub

Quelle est l'erreur et... la solution si possible.

Merci,
Norm


Salut

Comme ça à l'arrache

Me("Affectation Site") = Me("Affectation Site") &
iif(instr(1,me.affectation_site,Me!ListeSite)=0,me.listesite & ", ","")

a quelque chose prés ;-)











Avatar
Norm
Bonjour Pierre,

Merci beaucoup.
J'ai placé le code que tu m'as proposé dans la propriété AfterUpdate plutôt
que dans BeforeUpdate et là... ça fonctionne.
Je ne me souviens pas pourquoi j'avais placé le code dans BeforeUpdate...
une erreur de logique (la mienne !) probablement.

Merci encore.
Norm

"Pierre CFI" a écrit dans le message de news:

essaie
Me.ActivitéDispo = Me.ActivitéDispo & Me.ListeAct & ", "
pourquoi le beforeupdate et pas le afterupdate ????


--
Pierre CFI
"Norm" a écrit dans le message de news:

Bonjour Pierre et Fabien,

Oups! J'ai fait une erreur en reproduisant le code de la liste.. j'ai
inséré celui d'une autre liste du même formulaire qui, elle, fonctionne
correctement sans doublons. Mille excuses à vous deux.

Alors, voici ci-dessous, le code qui pose problème. C'est toujours un
choix qui se fait dans une liste déroulante puis ce choix est transféré
dans un autre champ (Ex: champ2) du même formulaire. Effectivement (pour
Pierre), il faut qu'il y ait une virgule et un espace qui s'inscrivent
automatiquement après l'inscription automatique dans le champ2 lors du
choix fait dans la liste déroulante.

Voici ce code sur propriété BeforeUpdate de la liste déroulante :
Private Sub ListeAct_BeforeUpdate(Cancel As Integer)
Me!ActivitéDispo = Me!ActivitéDispo & Me!ListeAct & ", "
End Sub

P.-S. : J'ai essayé d'adapter la proposition faite par Fabien dans ce
code mais cela ne fonctionne pas. Je rappelle que le problème ne se pose
pas lors de choix faits (même si plusieurs différents et consécutifs) au
moment de la première utilisation de cette fonction dans le formulaire.
Le problème se produit lors d'une utilisation ultérieure de celui-ci en
voulant ajouter de nouveaux choix par l'entremise de la liste déroulante
(bizarre... du moins pour moi!).

Merci encore si vous pouvez identifier mon erreur... personnellement je
suis "perdu".
Norm


"Pierre CFI" a écrit dans le message de
news:
bonjour
???????????????
là evidement, c'est le contenu plus la liste
et çà
Me("Affectation Site") = Me.ListeSite & ", "
si tu veux vraiment une virgule à la fin


--
Pierre CFI
"Fabien" a écrit dans le message de news:
%
Bonjour,

Sous Access 2003 (SP3) - Windows XP

A) Mise en situation :
Dans un formulaire, une zone de liste déroulante utilisant les données
d'une table sous-jacente, affiche des options disponibles pour
l'usager. Lorsque l'usager choisi une option dans cette liste,
l'option choisie s'inscrit automatiquement dans un autre champ (ex:
champ2) du même formulaire. Cet autre champ (champ2) du formulaire
provient aussi d'une autre table sous-jacente.

B) Problème :
Lorsque le formulaire est réutilisé (fermer puis ouvert de nouveau) et
que l'usager désire effectuer un autre choix dans la liste déroulante,
cet autre choix s'ajoute correctement à ceux effectués précédemment
cependant (et c'est là le problème !), ce nouveau choix s'inscrit
automatiquement 2 fois dans le champ2 lorsque l'usager appui sur la
touche TAB pour passer à un autre champ (sortir de la liste
déroulante).

Je reproduis ci-dessous le code actuellement utilisé dans la liste
déroulante permettant d'inscrire une donnée choisie à partir de cette
liste afin qu'elle s'inscrive automatiquement dans le champ2.
Note : "Affectation Site" dans le code ci-dessous est le nom du champ2
recevant automatiquement la donnée choisie dans la liste déroulante.
Ce code est placé dans la propriété Avant MAJ de la liste déroulante.

Private Sub ListeSite_BeforeUpdate(Cancel As Integer)


End Sub

Quelle est l'erreur et... la solution si possible.

Merci,
Norm


Salut

Comme ça à l'arrache

Me("Affectation Site") = Me("Affectation Site") &
iif(instr(1,me.affectation_site,Me!ListeSite)=0,me.listesite & ", ","")

a quelque chose prés ;-)