|
|
|
| По умолчанию, при добавлении кнопки в форму, на событие "нажатие кнопки" добавляется обработка ошибок.
Пример из преобразованного макроса.
Private Sub Кнопка179_Click()
On Error GoTo Кнопка179_Click_Err
DoCmd.GoToControl "Фамилия"
DoCmd.FindRecord "Ж", acStart, False, , True, , True
Кнопка179_Click_Exit:
Exit Sub
Кнопка179_Click_Err:
MsgBox Error$
Resume Кнопка179_Click_Exit
End Sub
Что может произойти если оставить только см. ниже?
Private Sub Кнопка179_Click()
DoCmd.GoToControl "Фамилия"
DoCmd.FindRecord "Ж", acStart, False, , True, , True
End Sub
Хочется сократить код. Благодарю. | |
|
| |
|
|
|
| При возникновении ошибки если в данной процедуре нет обработчика, то упралвение будет передано в процедуру вызвавшую данную, если и в ней нет обработчика - то еще выше и так до самого верха вызова процедуры, если нигде не встретиться обработчик, то вывалится окно "VB run-time error" с сообщением об ошибке.
Кстати Вы уверены что что-то выграите?
Создал базу с одной формой без контролов:
размер - 102 400
Создал в форме 5 кнопок стандартным мастером
размер 110 592
Удалил все обработчики
размер 110 592
Удалил все кнопки и код, и создал 10 кнопок стандартым мастером:
размер 118 784
Удалил обработчик ошибок из всех 10 кнопок
размер 118 784
Удалил код у 9-ти кнопок 9 оставил только у одной
размер 114 688
Удалил весь код
размер 114 688
Удалил форму и создал форму без кода и кнопок
размер - 102 400
Делайте выводы | |
|
| |
|
|
|
| Урок усвоил, это не ассемблер, где каждый байт на счету. | |
|
| |
|
|
|
| чтобы сократить код (улучшить управляемость проектом) можно вынести обработку ошибок во внешний модуль... | |
|
| |