Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вопрос про перехват ошибки / 17 сообщений из 17, страница 1 из 1
24.04.2009, 13:12
    #35952436
вопрос про перехват ошибки
есть поле_со_списком в табличной форме

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

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


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

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

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


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

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

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

Текст процедуры - в студию.
...
Рейтинг: 0 / 0
24.04.2009, 14:11
    #35952638
вопрос про перехват ошибки
может это и не ошибка вообще - а ворнинг какой нибуть - и его тож можно как нибуть програмно на время отключить ?
...
Рейтинг: 0 / 0
24.04.2009, 15:34
    #35952872
========
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про перехват ошибки
Аривидерчиможет это и не ошибка вообще - а ворнинг какой нибуть - и его тож можно как нибуть програмно на время отключить ?
А может, все-таки показать текст процедуры?
...
Рейтинг: 0 / 0
24.04.2009, 15:41
    #35952887
George-III
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про перехват ошибки
Обрабатывайте событие:
...
Рейтинг: 0 / 0
24.04.2009, 15:58
    #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
24.04.2009, 15:59
    #35952949
вопрос про перехват ошибки
все это дело работает - но ворнинг все таки выскакивает
...
Рейтинг: 0 / 0
24.04.2009, 16:00
    #35952956
вопрос про перехват ошибки
вернее, стоп, не совсем работает - список не обновляет на новый
...
Рейтинг: 0 / 0
24.04.2009, 16:02
    #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
24.04.2009, 16:03
    #35952962
вопрос про перехват ошибки
...
rst.AddNew
rst.Fields("des") = NewData
rst.Update
Response = acDataErrAdded
И больше ничего не надо (ИМХО).
...
Рейтинг: 0 / 0
24.04.2009, 16:03
    #35952963
========
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про перехват ошибки
ссылка испортилась

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

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

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


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