У меня есть форма, содержащая 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! .
Заранее спасибо.