Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA_Labs.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
8.08 Mб
Скачать

Задание для самостоятельной работы

Сконструируйте в базе данных Изделия форму ТНН аналогичную форме созданной в лабораторной работе, а для элемента управления Поле со списком выберите поле из таблицы ТНН – NTTN. При выборе номера накладной, на экран должна выводиться форма ОТГРУЗКА1 со списком отгружаемых товаров по данной накладной.

Контрольные вопросы

  1. Какой метод объекта DoCmd позволяет открыть форму.

  2. Назовите константу VBA, которая определяет вывод в окне диалога двух кнопок ОК и Отмена.

  3. Для чего используется ключевое слово Me?

Лабораторная работа №6 Создание таблицы и заполнение ее записями

Цель лабораторной работы: научиться создавать таблицы и заполнять ее записями с помощью процедуры VBA.

Пусть для получения списка студентов, обучающихся в заданной группе, необходимо создать таблицу и вывести ее на экран.

В базе данных имеется таблица СТУДЕНТ, из которой должны выбираться записи с заданным значением в поле НГ (номер группы). Для размещения результата выборки должна быть создана таблица Ответ с полями ФИО и Группа.

Для просмотра и выбора нужной группы из списка сконструируем кнопочную форму Выборка записей, не использующую источник данных. Создадим в ней поле со списком групп, построенное на основе данных из таблицы Группа (рис. 6.1).

Рис. 6.1. Окно формы со списком групп

1. Создайте процедуру, которая выполняется при обновлении значения в

поле со списком групп Private Sub ПолеСоСписком0_AfterUpdate(). Полный текст процедуры приведен ниже. В процедуре выделены три ос­новных блока. Предыдущие упражнения и комментарии позволят вам понять логику процедуры и инструкции, реализующие решение сформу­лированной выше задачи.

• Первый блок инструкций по созданию таблицы содержит инструкции создания структуры таблицы и включения объектов структуры в се­мейства.

• Второй блок начинается с создания наборов записей, предоставляю­щих возможность обработки каждой его записи. Набор записей по таблице СТУДЕНТ stab содержит все записи, удовлетворяющие за­данному условию отбора, и служит источником данных для новой таблицы. Набор записей по таблице Ответ stab1 используется для до­бавления записей в таблицу. Для последовательной обработки записей объектов Recordset организован цикл Do Until ....Loop.

• Третий блок обработки ошибок содержит инструкции, которые позво­ляют выполнять создание таблицы как в первый раз, так и повторно, даже если она не была закрыта.

2. Найдите в процедуре программу обработки ошибок, начинающуюся с метки ОбработкаОшибок. Эта программа получает управление при воз­никновении любой ошибки, поскольку в начале процедуры записана ин­струкция On Error GoTo ОбработкаОшибок.

• Первая инструкция программы If Err.Number - 7874 Then ... End If

проверяет код ошибки 7874, который вырабатывается при удалении не­существующей таблицы Ответ методом Deleteobject объекта DoCmd:

DoCmd.DeleteObject acTable, "Ответ"

• Следующая инструкция проверяет код ошибки 2008, который вырабатывается при попытке удалить открытую таблицу Ответ. Обнаружив эту ошибку, программа закрывает таблицу и передает управление на повторное выполнение инструкции удаления таблицы и продолжения работы процедуры.

• Во всех остальных случаях предусмотрен вывод стандартного сообщения об ошибке.

3. Удалите из программы обработки ошибок или переведите в комментарии первые две инструкции if ... Then ... End if. Откройте таблицу Ответ. При выполнении процедуры вы получите стандартное сообщение об ошибке 2008 и процедура завершит выполнение. Удалите таблицу Ответ. При выполнении процедуры вы получите сообщение об ошибке 7874 и процедура также завершит выполнение. Убедитесь, что те же действия при наличии указанных инструкций не вызывают никаких осложнений при выполнении процедуры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]