Хотя макросы являются мощным средством, все-таки есть задачи, которые невозможно выполнить с помощью макросов.
1.1 База данных может содержать 2 вида модулей:
─ общие модули, являющиеся объектами базы данных (используются для хранения процедур, которые будут выполняться из нескольких запросов, форм и отчетов приложения. Создаются по нажатии кнопки Создать в то время, когда в окне базы данных выбраны Модули);
─ модули форм и отчетов, которые являются частью этих объектов (встроенные процедуры обработки событий, возникающих в форме или отчете. Чтобы отредактировать связанный модуль, нужно открыть соответствующий объект в режиме конструктора, щелкнуть кнопку Модули на панели инструментов или выполнить Вид/Модули).
1.2 Чтобы увидеть общие модули БД, щелкните по корешку Модули в окне БД и нажмите кнопку Вставить модуль.
1.3 В Microsoft Access для работы с модулями имеется специальная панель инструментов. Чтобы открыть окно модуля для выбранной формы, откройте базу данных STUD, щелкните по корешку Формы, выберите форму "Задолженность" и щелкните по кнопке Конструктор, затем по кнопке Программа (или выполните команду Вид/Программа). ВЫ сможете посмотреть модуль, написанный Access. Чтобы вернуться в окно базы данных, закройте окно модуля и форму.
Кнопки панели инструментов перечислены слева направо:
Вставить модуль ─ вставляет в текущую базу данных новый модуль и открывает в окне модуля его раздел описаний;
Сохранить сохраняет макет объекта в режиме таблицы, структуру таблицы, запроса, формы или отчета, а также структуру и содержимое макроса или модуля;
Печать ─ печатает выделенную форму, отчет, таблицу, запрос или модуль, не открывая диалогового окна Печать;
Найти ─ выполняет поиск строкового значения (например, фамилии) в объекте в режиме таблицы или в форме, а также поиск ключевого слова Visual Basic в окне модуля;
Перейти/продолжить ─ возобновляет выполнение программы после прерывания, за исключением случая прерывания, после которого выполнение невозможно (например, при ошибке деления на нуль). Также выполняет выделенную процедуру, не содержащую аргументов;
Завершить ─ прекращает выполнение процедур Visual Basic и очищает все локальные переменные, но сохраняет значения всех общих переменных. Используется для инициализации процедуры в модуле перед ее запуском после изменения;
Сброс ─ прекращает выполнение процедур Visual Basic и очищает все локальные и общие переменные. Используется для инициализации всех программ в модуле перед его запуском после изменения;
Окно отладки ─ открывает окно отладки для тестирования и отладки программы;
Просмотр объектов ─ открывает окно, в котором отображаются все методы и свойства, определенные в текущей базе данных, в других доступных базах данных и в доступных приложениях, поддерживающих Visual Basic. используется для вывода на экран и вставки синтаксиса выбранных методов и свойств;
Контрольное значение ─ отображает значение выделенного выражения
(например, переменной, свойства или функции). Также позволяет добавить выбранное выражение на панель контрольных значений окна отладки для продолжения наблюдения за изменением значения контрольного выражения;
Стек вызова ─ выводит перечень вызывавшихся процедур начиная с вызывавшейся последней, позволяя проследить последовательность вызовов процедур. Данная кнопка активизируется только при открытом окне модуля или окне отладки и только в режиме прерывания программы;
Компилировать загруженные модули ─ компилирует все процедуры в открытых модулях и модули открытых форм и отчетов. Используется для поиска ошибок при компиляции и ошибок синтаксиса;
Точка останова ─ устанавливает и снимает точку останова. На точке останова выполнение программы Visual Basic прекращается и программа входит в режим прерывания (Microsoft Access выделяет строку, содержащую точку останова, полужирным шрифтом);
Шаг с заходом ─ выполняет инструкции по одной, в том числе инструкции в вызываемой процедуре;
Шаг с обходом ─ выполняет инструкции по одной, причем вызов процедуры рассматривается как один шаг;
Шаг с выходом ─ запускает все строки программы и вложенные процедуры в пошаговом режиме, начиная с текущей выполняемой инструкции, и переходя к следующей выполняемой инструкции в следующей процедуре цепочки вызовов. Используется с целью избежания прохождения по всем строкам программы в вызываемых процедурах;
Окно базы данных ─ выводит на передний план окно базы данных, содержащее списки всех объектов текущей базы данных. Используется, например, для переноса объектов с помощью мыши из окна базы данных в текущее окно.
1.4 При открытии окна модуля в режиме конструктора оно содержит раздел описания с переменными, общими для всех процедур данного модуля. Находясь в разделе описаний, с помощью клавиши PgDn можно перейти к первой
процедуре модуля. Можно выбрать нужную процедуру, пользуясь списком Процедуры на панели инструментов.
Для создания новой процедуры выполните команду Вставка\Процедура. Появится окно:
выберите инструкцию Функция или Подпрограмма и введите имя.
1.5. Если вы находитесь в открытом окне модуля, для отладки щелкните по кнопке Debug на панели инструментов или выберите команду VIEW/Debug. Объект, используемый для отладки, называется Debug. Его метод Print используется для вывода данных в окне отладки. Чтобы вывести текущее значение переменной, в окне отладки нужно ввести:
Debug.Print <переменная>
или
<переменная>
а затем нажать Enter. Аналогично запускаются процедуры-функции в окне отладки.
1.6. Microsoft Access Basic поддерживает следующие типы данных:
Тип данных | Размер (байт) | Обозначение | Может содержать |
Integer | % | Целые числа от – 32 768 до 32764 или True/False | |
Long | & | Целые числа от – 2 147 483 648 до 2 147 483 647 | |
Single | ! | Числа с плавающей точкой от - 3.4*1038 до 3.4*1038 | |
Double | # | Числа с плавающей точкой от -1.79*10308 до 1.79*10308 | |
Currency | @ | Масштабированное целое плюс 4 десятичных разрядов в дробной части | |
String | на указатель | $ | Любой текст или символ. Двоичная строка длинной до 65 535 байтов, включая текстовые данные, примечания и части OLE – объекта. |
Variant | 1~ 65 535 | Нет | Любые данные (используйте функцию VarType для определения текущего типа данных переменной) |
User defined | Зависит от определяемых элементов | Нет | Любое число переменных любого из перечисленных выше типов |