- •Кафедра учета, анализа и аудита
- •«Компьютерные системы и сети»
- •Часть 2. Программирование на vba
- •Введение
- •Тема № 1 создание пользовательских функций
- •Тема № 2 пользовательские процедуры
- •Тема 2.1 Ввод записей в базу данных
- •Тема 2.2 Поиск уникальной записи по указанным критериям
- •Тема 2.3 Расчет итоговых показателей по всем и группе записей.
- •Тема 2.4 Поиск записей согласно критериям.
- •Тема № 3 отладка программ и обработка ошибок
- •Тема № 4 проектирование пользовательских форм для ввода-вывода информации
- •Тема 4.1 Использование формы в процедуре Auto_Open
- •Тема 4.2 Ввод новой записи в форме, обработка записей
- •Тема № 5 проектирование системного меню и справочной информации
- •Приложение
- •Оглавление
Тема № 3 отладка программ и обработка ошибок
Отладка программ и обработка ошибок тесно связаны друг с другом, но не идентичны.
Отладка программ – проверка и внесение изменений в программу при ее разработке. Отладка позволяет идентифицировать ошибки, допущенные при программировании, синтаксические ошибки и ошибки выполнения.
Обработка ошибок – задание реакции на ошибки, которые возникают во время выполнения программ. Причиной ошибок могут быть – ошибки в самой программе, отсутствие файлов или сети, отказы аппаратных средств, неправильные действия пользователя.
Поэтому существуют два подхода к написанию программ:
Предотвращение ошибок – анализ вводимых данных и результатов, если они могут привести к ошибке, обеспечить возможность информирования пользователя о необходимости корректного ввода
Перехват ошибок – в случае их появления, перехватить, обработать и программно откликнуться на ошибку.
Каждая ошибка имеет код. Некоторые из них приведены в табл. 8.
Таблица 8
Перехватываемые ошибки
-
Код
Сообщение
5
Неверный аргумент функции, в т.ч. корень из отрицательного числа
6
Переполнение
7
Не хватает памяти
11
Деление на ноль
13
Несоответствие типа
53
Файл не найден
57
Ошибка ввода-вывода
61
Переполнение диска
71
Диск не готов
380
Неверное значение свойства
422
Не найдено свойство объекта
448
Именованный аргумент не найден
482
Ошибка принтера
Ниже приведена процедура, предотвращающая деление на ноль.
Procпроверка_1()
A=InputBox(“Введите первое число”)
B=InputBox(“Введите второе число”)
Ifb= 0then
MsgBox“На ноль делить нельзя”
C=0
Else
C= a / b
End if
End sub
Правильно разработав подпрограмму обработки ошибок, можно задать отклик на многие возможные ошибки. Наиболее важно, чтобы ошибка не остановила выполнение процедуры. При этом пользователь может не заметить, что ошибка произошла. Процедура Проверка_2обрабатывает появление ошибки деления на ноль и переполнения результата, т.к. тип результатаIntegerимеет допустимый диапазон значений [-32 767, 32768].
SubПроверка_2()
DimcAsInteger
a = InputBox("Введите А")
b=InputBox("Введите В")
OnErrorGoTometka
c=a/b
MsgBox«Результат - » &c
Exit Sub
metka:
Select Case Err.Number
Case11
b=InputBox("Деление на ноль. Измените переменнуюB")
Case6
a=InputBox("Переполнение. Уменьшите значение переменной А")
End Select
Resume
End Sub
Задание № 7. Создайте процедуру расчета площади треугольника по вводимым с клавиатуры сторонам. Осуществить обработку всех возможных ошибок.
Тема № 4 проектирование пользовательских форм для ввода-вывода информации
Пользовательская форма представляет собой любое диалоговое окно, аналогичное диалоговому окну в операционной системе Windowsи предназначена для ввода-вывода информации. Создаются самостоятельно, могут иметь произвольный вид и содержать различные элементы управления, упрощающие ввод или более наглядно представляющие результаты. Основные элементы управления перечислены в табл. 9
Таблица 9
Основные элементы управления, добавляемые в форму
Элемент управления |
Программное имя |
Описание |
Поле |
TextBox |
Отображает данные и используется для ввода информации |
Надпись |
Label |
Отображает неизменяемый текст в формах |
Флажок |
CheckBox |
Позволяет задать значения «Истина» или «Ложь» |
Поле со списком |
ComboBox |
Используется для выбора нужного значения или для ввода значения в поле |
Список |
ListBox |
Список возможных значений |
Счетчик |
SpinButton |
Используется для ввода числовых значений |
Линейка прокрутки |
ScrollBar |
Используется для ввода числовых значений из большого диапазона значений |
Переключатель (опция) |
OptionButton |
Используется для предоставления выбора одного варианта значений из многих |
Страница |
MultiPage |
Создает несколько страниц в одной форме |
Кнопка |
CommandButton |
Создает кнопку, при нажатии на которую выполняется команда |