powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вопрос про перехват ошибки
17 сообщений из 17, страница 1 из 1
вопрос про перехват ошибки
    #35952436
есть поле_со_списком в табличной форме

необходимо перехватить ошибку

- Введенный текст не соответствует ни одному из элементов списка
(Выберите элемент из списка или введите текст, соответствующий одному из этих элементов)


на событие IsnotInList - я повесил необходимую процедуру, но при этом ошибка продолжает вываливатся - хотелось бы ее заглушить
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952453
========
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аривидерчиесть поле_со_списком в табличной форме

необходимо перехватить ошибку

- Введенный текст не соответствует ни одному из элементов списка
(Выберите элемент из списка или введите текст, соответствующий одному из этих элементов)


на событие IsnotInList - я повесил необходимую процедуру, но при этом ошибка продолжает вываливатся - хотелось бы ее заглушить
Код и описание ошибки в студию
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952553
========,
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952589
Фотография CoolMind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аривидерчи, по-моему, у ПоляСоСписком есть свойство, что невозможно изменять его значение, только выбирать из списка, хотя могу ошибаться.
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952630
CoolMind,

дак мне то как раз нужно вводить

т.е. ввожу если нету в списке - автоматом закидывает в соответствующую таблицу и начинает быть виден при след. разе раскрытия списка
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952636
Аривидерчина событие IsnotInList - я повесил необходимую процедуру, но при этом ошибка продолжает вываливатся - хотелось бы ее заглушить Либо в своей процедуре не добавляете новую запись в источник, либо не используете константу acDataErrAdded.
В этом случае срабатывает событие Form_Error.

Текст процедуры - в студию.
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952638
может это и не ошибка вообще - а ворнинг какой нибуть - и его тож можно как нибуть програмно на время отключить ?
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952872
========
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аривидерчиможет это и не ошибка вообще - а ворнинг какой нибуть - и его тож можно как нибуть програмно на время отключить ?
А может, все-таки показать текст процедуры?
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952887
Фотография George-III
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обрабатывайте событие:
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952945
Private Sub Lst_contract_des_NotInList(NewData As String, Response As Integer)
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

rst.Open "Contract", CurrentProject.Connection, adOpenDynamic, adLockPessimistic


rst.AddNew
rst.Fields("des") = Lst_contract_des.Text
rst.Update

Me.Form![tmp_work_fk_contract] = rst.Fields("PK")

rst.Close
Set rst = Nothing

Lst_contract_des_GotFocus

End Sub


Привожу также процедуру Lst_contract_des_GotFocus - которая обновляет список - в зависимости от значения еще одного списка


Private Sub Lst_contract_des_GotFocus()
Dim str As Variant

If Me.Form![tmp_work_contract_type] = 1 Then

str = "SELECT pk,des FROM contract Where contract.type = " & Me.Form![tmp_work_contract_type]

If Not IsNull(Me.Form![tmp_work_fk_kontragent]) Then
str = str + " and contract.fk_kontragent = " & Me.Form![tmp_work_fk_kontragent]
End If

Lst_contract_des.RowSource = str

Else

Lst_contract_des.RowSource = "SELECT pk,des FROM contract Where contract.type = 0"

End If


'Debug.Print Lst_contract_des.Text


End Sub
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952949
все это дело работает - но ворнинг все таки выскакивает
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952956
вернее, стоп, не совсем работает - список не обновляет на новый
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952961
========
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АривидерчиPrivate Sub Lst_contract_des_NotInList(NewData As String, Response As Integer)
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

rst.Open "Contract", CurrentProject.Connection, adOpenDynamic, adLockPessimistic


rst.AddNew
rst.Fields("des") = Lst_contract_des.Text
rst.Update

Me.Form![tmp_work_fk_contract] = rst.Fields("PK")

rst.Close
Set rst = Nothing

Lst_contract_des_GotFocus

End Sub


Привожу также процедуру Lst_contract_des_GotFocus - которая обновляет список - в зависимости от значения еще одного списка


Private Sub Lst_contract_des_GotFocus()
Dim str As Variant

If Me.Form![tmp_work_contract_type] = 1 Then

str = "SELECT pk,des FROM contract Where contract.type = " & Me.Form![tmp_work_contract_type]

If Not IsNull(Me.Form![tmp_work_fk_kontragent]) Then
str = str + " and contract.fk_kontragent = " & Me.Form![tmp_work_fk_kontragent]
End If

Lst_contract_des.RowSource = str

Else

Lst_contract_des.RowSource = "SELECT pk,des FROM contract Where contract.type = 0"

End If


'Debug.Print Lst_contract_des.Text


End Sub

Анатолий, похоже, был прав - как всегда (обратите внимание насчет Response).

http://www.sql.ru/forum/actualthread.aspx?tid=659094
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952962
...
rst.AddNew
rst.Fields("des") = NewData
rst.Update
Response = acDataErrAdded
И больше ничего не надо (ИМХО).
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952963
========
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ссылка испортилась

http://www.sql.ru/forum/actualthread.aspx?tid=659094
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35952978
Урррааа

Вопрос закрыт.

спасибо огромное - работает
...
Рейтинг: 0 / 0
вопрос про перехват ошибки
    #35953027
========
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев )...
rst.AddNew
rst.Fields("des") = NewData
rst.Update
Response = acDataErrAdded
И больше ничего не надо (ИМХО).
Анатолий, вопрос: есть ли гарантия (при отсутствии runtime ошибки), что запись добавилась в таблицу при таком коде?
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вопрос про перехват ошибки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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