Добавление новых данных с помощью параметра «Не в списке» не работает должным образом в поле со списком отфильтрованных строк в MS Access - PullRequest
0 голосов
/ 17 октября 2019

У меня есть форма, содержащая 3 связанных каскадных элемента управления со списком, названных Category, Group и Subgroup. После обновления каждого из них он будет фильтровать следующий, устанавливая свой источник строк с помощью кода VBA, как показано ниже:

    Private Sub CATEGORY_id_AfterUpdate()
    Me.GROUP_id.RowSource = "SELECT * FROM [GROUP] WHERE [CATEGORY_ID] = " & Me.CATEGORY_id.value
    Me.GROUP_id.Requery
    End Sub

Я пытаюсь автоматически обрабатывать добавление новых данных через событие NotInList. Все работает очень хорошо ЕСЛИ и только если , комбо не было отфильтровано из источника строк, что означает сообщение "этого элемента нет в списке .... и т. Д."продолжает отображать вместо использования правильного кода, не прося пользователя добавить новые данные или нет, как показано ниже:

    Private Sub GROUP_id_NotInList(NewData As String, Response As Integer)
    Dim strsql As String
    strsql = "INSERT INTO [GROUP] " _
             & "([GROUP_NAME],[CATEGORY_id]) VALUES " _
             & "('" & NewData & "'," & Me.CATEGORY_id.value & ");"
    DoCmd.SetWarnings False
    DoCmd.RunSQL strsql
    DoCmd.SetWarnings True
    Response = acDataErrAdded
    End Sub

Пожалуйста, как использовать событие NotInList для добавления новых данных непосредственно вполе со списком отфильтрованный источник строк БЕЗ получения раздражающего сообщения (Этот элемент отсутствует в списке ...).

Моим простым объяснением этой проблемы может быть то, что при доступе запускается событие NotInListпри проверке новых данных по источнику строк поля со списком, который фильтруется только для определенных данных, при добавлении этих новых данных они будут добавлены в исходную таблицу , а не в отфильтрованный источник строк, это будет Создайте второй запуск события NotInList! .

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...