acNewRec не работает для поля со списком NotInList

У меня есть ComboBox в форме доступа. Он показывает список элементов из таблицы БД. Если элемент не найден, я хочу создать эту запись. Поэтому я использую событие NotInList:

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

    DoCmd.GoToRecord , , acNewRec

End Sub

Когда я пытаюсь ввести несуществующий элемент в ComboBox, выдается ошибка: введите здесь описание изображения

Но я создал кнопку и добавил тот же код для события onClick, и он работает без проблем.

Что не так с NotInList? Как я могу использовать это событие для добавления новой записи?


person Alexan    schedule 12.06.2017    source источник


Ответы (1)


Вам нужно сбросить ошибку и все, что введено.

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

    Response = acDataErrContinue
    MsgBox "New entries are not permitted." & vbCrLf & vbCrLf & _
        "Please select an entry from the list or " & vbCrLf & _
        "move to a new record and add a new item below. ", , _
        "MsgBox Title"
    Me.cboSelect.Undo

End Sub
person wazz    schedule 12.06.2017
comment
Затем DoCmd.GoToRecord. Я думаю, вы можете сделать это в том же проце. - person wazz; 12.06.2017
comment
да, Combo9.Undo сделал свое дело. Я также использовал Combo9.Value = . В противном случае у меня был неограниченный цикл события NotInList, который вызывал эту ошибку. - person Alexan; 13.06.2017
comment
затем включите DoCmd.GoToRecord , acNewRec в свой код, чтобы сделать ответ полным. - person Alexan; 13.06.2017