powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблемы с вызовом формы по событию "отсутствие в списке"
2 сообщений из 2, страница 1 из 1
Проблемы с вызовом формы по событию "отсутствие в списке"
    #39359100
Sergey8969
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток

Столкнулся с непонятной проблемой. Добавил код на событие "отсутствие в списке" в поле со списком на форме, который должен открывать другую форму для добавления нового значения, отсутствующего в списке. Этот код я уже много раз применял в этой базе, да даже на этой форме у меня еще 2 поля со списком, в которых таким же образом реализовано добавление записей "не в списке". Вот код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
IzmenenieSpiska = MsgBox("Добавить нового производителя  " & NewData & " в список?", vbYesNo)
If IzmenenieSpiska = vbNo Then 'если не захотели добавлять производителя
    Me.[Id_производитель_вр].Undo
    Response = acDataErrContinue 'Сообщает Access о запрете вывода сообщения об ошибке.
Else 'если добавляем нового производителя
    Response = acDataErrAdded
    DoCmd.OpenForm "Новый_производитель", , , , , acDialog, (NewData)
    [Id_производитель_вр].Undo
    [Id_производитель_вр].Requery

    '------------проверка внесли ли нового производителя в таблицу Новый производитель
    Set rs1 = CurrentDb.OpenRecordset("SELECT [Производитель] FROM [Производитель] WHERE [Производитель]= '" & NewData & "' ")

        If rs1.EOF Then
           [Id_производитель_вр] = Null
        Else
            [Id_производитель_вр] = rs1![Производитель]
        End If
    Set rs1 = Nothing
    '/------------проверка внесли ли нового производителя в таблицу Новый производитель
End If

End Sub



При добавлении нового значения в поле со списком вызывается это событие, обрабатывается msgbox, выдается сообщение "Добавить нового производителя", а вот дальше вне зависимости от того что нажмешь - ок или отменя, выполнение кода прерывается и выдается сообщение "Введенный текст не соответствует ни одному из элементов списка", дальше ничего не происходит. Я уж пробовал все настройки поля перепроверить, выставил такие же, как и в полях, где все работает.

Дальше еще интереснее. Если на msgbox добавить брейкпоинт, вызвать событие - откроется окно вба с выделенной строчкой msgbox, далее нажимаем Run sub (продолжаем выполнение кода) и о чудо - все работает нормально.

Далее методом научного тыка я выяснил, что если удалить из события Private Sub Form_KeyPress(KeyAscii As Integer) строчки, которые обращаются к Screen.ActiveControl.Name, то опять же все отрабатывается нормально.
Только проблема в том, что мне нужно определять Screen.ActiveControl.Name в этом событии.

Как быть? Как исправить? Может чем-то другим заменить Screen.ActiveControl.Name? Непонятная ерунда какая-то.
...
Рейтинг: 0 / 0
Проблемы с вызовом формы по событию "отсутствие в списке"
    #39359140
Sergey8969
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заменил Screen.ActiveControl.Name на Me.ActiveControl.Name - заработало. Почему возникли проблемы не до конца понял
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблемы с вызовом формы по событию "отсутствие в списке"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]