Событие Not In List в многостолбцовом поле вызывает переход к следующей записи при добавлении новой записи. - PullRequest
0 голосов
/ 12 июня 2019

У меня есть поле со списком из 4 столбцов (ID, муниципалитет, район (= округ), область (= провинция)).Источник данных взят из 3 связанных таблиц (Муниципалитет, Район, Область).Когда я получаю событие NotInList и добавляю новое имя муниципалитета и идентификатор района в таблицу муниципалитетов, выбирается следующая запись (фокус перемещается к следующей записи) без видимой причины.Если я выбираю существующую запись в поле со списком, текущая запись остается ожидаемой.

Мой код работает, если я использую только стандартную настройку с двумя столбцами.Если я объединю муниципалитет, район и область в одну запись и, следовательно, получу список из 2 столбцов, я получу ту же проблему.Я пробовал разные подходы для обработки события, которое я нашел в Интернете, но проблема остается.Очевидно, что это связано с настройкой многоколонок, но я все еще ищу обходной путь.

AddMunicipality вызывается из нескольких различных форм из события NotInList.AddMunicipalityQuestion получает действительный идентификатор района.

Public Sub AddMunicipality(newData As String, Response As Integer)
    Dim newRayon As Integer
    Dim newOblast As Integer

    On Error GoTo Error_Handler

    If AddMunicipalityQuestion(newData, newRayon) Then
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO tbl_Municipalities (MunName, Rayon) VALUES (""" & newData & """, " & newRayon & ");"
        DoCmd.SetWarnings True
        Response = acDataErrAdded
    Else
        MsgBox "Please select a Municipality from the list.", _
        vbExclamation + vbOKOnly, "Unknown Municipality"
        Response = acDataErrContinue
    End If

Exit_Procedure:
    DoCmd.SetWarnings True
    Exit Sub

Error_Handler:
      MsgBox Err.Number & ", " & Err.Description, vbInformation, "AddMunicipality()"
    Resume Exit_Procedure
End Sub

Новый муниципалитет добавлен правильно, но по какой-то причине следующая запись (или новая запись) получает фокус.

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Я обнаружил проблему: в конце концов, это не имело ничего общего с многоколоночным комбинированным списком.Хотя это было первое поле в форме, это была последняя остановка табуляции, и для свойства формы Cycle было установлено значение «Все записи».Я ввел новые записи, нажав вкладку, старые, которые я выбрал в меню.Извините всех, кто потратил впустую мысль на эту проблему.

0 голосов
/ 12 июня 2019

Вы пытались получить идентификатор строки после вставки, а затем выполнить фильтрацию по нему вручную? Например. используя запрос для мультиколонки и предполагая, что RayonID является связанным полем в поле со списком:

dim newItemNum as long
newItemNum = dlookup("RayonID","MulticolumnQuery","MunName='" & MunName & "'")
Me.combobox.Value =  newItemNum
...