1° ) Dans un sous-form, j'ai placé ce code sur l'evenement "Sur absence dans
liste" :
Private Sub Item_NotInList(NewData As String, Response As Integer)
Dim rst As DAO.Recordset
If MsgBox("Cet item n'existe pas, voulez-vous le créer ?", vbYesNo, "Pas
dans la liste") = vbYes Then
Me.Item.Undo
DoCmd.OpenForm "Items", , , , acFormAdd, acDialog, Me.Item
Me.Item.Requery
Response = acDataErrContinue
Else
Response = acDataErrContinue
End If
End Sub
2° ) Ce code fonctionne si :
- je sélectionne n'importe quel élément existant de la liste
- je sors du champ
- je rentre de nouveau dans le champ
- je saisis le nouvel élément à rajouter
- je valide la saisie
- le MsgBox s'ouvre, le Form "Items" s'ouvre, je saisis le nouvel
element, je referme le Form "Items", et je retrouve bien le nouvel element
dans la liste.
3° ) Ce code ne fonctionne pas si :
- je saisis directement le nouvel élément à rajouter
- je valide la saisie
- Access s'énerve et m'indique "Erreur d'exécution 2498 ; le type d'une
expression entree pour un des arguments est incorrect".