OVH Cloud OVH Cloud

OnNotInList / Zone de liste déroulante

2 réponses
Avatar
BrunoM
Cela concerne une Zone de Liste D=E9roulante servant =E0=20
saisir l'article dans des bons d'achat. Cette zone est=20
li=E9e par int=E9grit=E9 r=E9f=E9rencielle =E0 la table des articles.
Les choix de la liste sont bas=E9s sur une query qui=20
interroge cette table des articles.

Le but est de pouvoir saisir le plus simplement possible=20
les nouveaux articles, en les ajoutant au passage dans la=20
table des articles.

J'utilise l'=E9v=E8nement OnNotInList (Absence dans liste)
conjugu=E9 =E0 la propri=E9t=E9 Limit To List =3D yes pour d=E9tecter=20
la saisie d'un nouvel article et lancer une proc=E9dure VBA=20
sp=E9cifique.
Cette proc=E9dure ouvre un formulaire en mode Ajout pour=20
saisir le nouvel article dans la table des articles.
J'effectue ensuite un .Requery sur la zone de liste=20
d=E9roulante pour remettre =E0 jour sa liste des choix.

Mon probl=E8me est que je n'arrive pas =E0 emp=EAcher le message=20
d'alerte li=E9 =E0 l'=E9v=E8nement 'Absent dans la liste' de=20
s'afficher (ie "le texte entr=E9 n'est pas un =E9l=E9ment de la=20
liste").
Celui-ci appara=EEt a la fin de la proc=E9dure d=E9clench=E9e par=20
l'=E9v=E8nement 'Absent dans la liste', et il semble=20
irr=E9m=E9diablement li=E9 =E0 cet =E9v=E8nement.
J'ai beau essayer de placer des 'DoCmd.SetWarnings False',=20
rien n'y fait.

Qui a une id=E9e ?

2 réponses

Avatar
Eric
Bonjour Bruno,

Essaies ca:

Private Sub TaListe_NotInList(NewData As String, Response As Integer)
...

If MsgBox("Voulez-vous créer cet article", vbQuestion+vbOKCancel,
"titre de ta boite") = vbCancel Then
Response = acDataErrContinue
Me.Undo
Else
Response = acDataErrAdded ' Ceci va empecher l'apparition du
message
DoCmd.OpenForm "NomFormSaisieAricle", acNormal, , , acFormAdd,
acDialog, NewData
End If
En Sub

A+
Eric

"BrunoM" écrivait news:2eac01c3fce1$195507f0
$:

...

Mon problème est que je n'arrive pas à empêcher le message
d'alerte lié à l'évènement 'Absent dans la liste' de
s'afficher (ie "le texte entré n'est pas un élément de la
liste").
Celui-ci apparaît a la fin de la procédure déclenchée par
l'évènement 'Absent dans la liste', et il semble
irrémédiablement lié à cet évènement.
J'ai beau essayer de placer des 'DoCmd.SetWarnings False',
rien n'y fait.

Qui a une idée ?



Avatar
C'est super. Effectivement, je me demandais à quoi servait
la variable Response, mais je n'avais pas trouvé la
réponse dans le help.

Merci beaucoup. C'est du béton.

-----Message d'origine-----
Bonjour Bruno,

Essaies ca:

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

...

If MsgBox("Voulez-vous créer cet article",
vbQuestion+vbOKCancel,

"titre de ta boite") = vbCancel Then
Response = acDataErrContinue
Me.Undo
Else
Response = acDataErrAdded ' Ceci va empecher
l'apparition du

message
DoCmd.OpenForm "NomFormSaisieAricle",
acNormal, , , acFormAdd,

acDialog, NewData
End If
En Sub

A+
Eric

"BrunoM" écrivait news:2eac01c3fce1
$195507f0

$:

...

Mon problème est que je n'arrive pas à empêcher le
message


d'alerte lié à l'évènement 'Absent dans la liste' de
s'afficher (ie "le texte entré n'est pas un élément de
la


liste").
Celui-ci apparaît a la fin de la procédure déclenchée
par


l'évènement 'Absent dans la liste', et il semble
irrémédiablement lié à cet évènement.
J'ai beau essayer de placer des 'DoCmd.SetWarnings
False',


rien n'y fait.

Qui a une idée ?



.