-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Проблемы с вызовом формы по событию "отсутствие в списке"

Пятница, 02 Декабря 2016 г. 09:34 + в цитатник
Доброго времени суток

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

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? Непонятная ерунда какая-то.

http://www.sql.ru/forum/1241057/problemy-s-vyzovom-formy-po-sobytiu-otsutstvie-v-spiske


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку