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

Peut-on 'Empiler' des NotInList?

2 réponses
Avatar
Gilbert
Bonjour,

Mon problème est le suivant

Dans un formulaire (Form1), j'ai une liste déroulante (Liste1) pour laquelle
je traite l'évènement NotInList avec
le code suivant

strTmp = NewData
intReturn = MsgBox("La prestation : '" & strTmp & "' n'est pas dans la
liste. Voulez-vous l'ajouter?", vbQuestion + vbYesNo, Titre_Db)
If intReturn = vbYes Then
DoCmd.OpenForm FormName Form2, DataMode:=acAdd,
windowmode:=acDialog, OpenArgs:=strTmp
If IsNull(DLookup("RefPrestation", "Tbl_Prestations", "[Prestation]
= '" & strTmp & "'")) Then
Response = acDataErrContinue
Else
Response = acDataErrAdded
End If
Exit Sub
End If
Response = acDataErrContinue

Dans le formulaire qui s'ouvre, je crée un nouvel enregistrement avec la
valeur passée en OpenArgs.
Cet enregistrement a un autre champ qui utilise aussi une liste déroulante
(Liste2) dont l'évènement NotInList est traité comme ci-dessus (avec
ouverture d'un formulaire Form3).

Si je ne passe que dans l'évènement NotInList de la liste Liste1, elle est
bien actualisée avec la nouvelle valeur.
Si je passe dans les 2 évènements NotInList, la liste Liste2 est bien
actualisée avec la nouvelle valeur, mais pas la liste Liste1.

Avez-vous une idée pour résoudre ce problème?

Merci d'avance

Gilbert

2 réponses

Avatar
3stone
Salut,

"Gilbert"
| Mon problème est le suivant
|
| Dans un formulaire (Form1), j'ai une liste déroulante (Liste1) pour laquelle
| je traite l'évènement NotInList avec
| le code suivant
|
| strTmp = NewData
| intReturn = MsgBox("La prestation : '" & strTmp & "' n'est pas dans la
| liste. Voulez-vous l'ajouter?", vbQuestion + vbYesNo, Titre_Db)
| If intReturn = vbYes Then
| DoCmd.OpenForm FormName Form2, DataMode:¬Add,
| windowmode:¬Dialog, OpenArgs:=strTmp
| If IsNull(DLookup("RefPrestation", "Tbl_Prestations", "[Prestation]
| = '" & strTmp & "'")) Then
| Response = acDataErrContinue
| Else
| Response = acDataErrAdded
| End If
| Exit Sub
| End If
| Response = acDataErrContinue



Je ne comprends pas bien ta méthode...

Sur déclenchement du "NotInList" tu fait un Dlookup() ?
Pourquoi ??
Le notinlist se déclenche justement lorsque la valeur n'existe pas !

Pour le reste... si les deux listes reponsent sur la même table
il suffit de traiter la première liste. Si elles reponsent sur deux
tables différentes le traitement sera(it) indépendant aussi...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Gilbert
Bonjour,

J'ouvre le formulaire en mode modal pour ajouter la valeur saisie, et
ensuite avec le Dlookup, je vérifie que la valeur a bien été ajoutée dans la
table.
Les 2 listes reposent sur des tables différentes.

"3stone" a écrit dans le message de
news:O6Qa%
Salut,

"Gilbert"
| Mon problème est le suivant
|
| Dans un formulaire (Form1), j'ai une liste déroulante (Liste1) pour
laquelle

| je traite l'évènement NotInList avec
| le code suivant
|
| strTmp = NewData
| intReturn = MsgBox("La prestation : '" & strTmp & "' n'est pas dans
la

| liste. Voulez-vous l'ajouter?", vbQuestion + vbYesNo, Titre_Db)
| If intReturn = vbYes Then
| DoCmd.OpenForm FormName Form2, DataMode:¬Add,
| windowmode:¬Dialog, OpenArgs:=strTmp
| If IsNull(DLookup("RefPrestation", "Tbl_Prestations",
"[Prestation]

| = '" & strTmp & "'")) Then
| Response = acDataErrContinue
| Else
| Response = acDataErrAdded
| End If
| Exit Sub
| End If
| Response = acDataErrContinue



Je ne comprends pas bien ta méthode...

Sur déclenchement du "NotInList" tu fait un Dlookup() ?
Pourquoi ??
Le notinlist se déclenche justement lorsque la valeur n'existe pas !

Pour le reste... si les deux listes reponsent sur la même table
il suffit de traiter la première liste. Si elles reponsent sur deux
tables différentes le traitement sera(it) indépendant aussi...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/