Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основные приемы работы в СУБД Access.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
5 Мб
Скачать

Лабораторная работа № 14 автоматизация работы пользователя с помощью макросов, модулей и кнопочных форм

Информация

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

Последовательность операций (действий), входящих в макрос, вводится пользователем в окне проектирования макроса. Для создания макроса в окне базы данных выполните щелчок мышью на закладке макросов Макросы и нажмите кнопку Создать. В результате этих действий откроется окно проектирования макроса. В окне проектирования макроса каждая строка может содержать одну макрокоманду (в колонке Макрокоманда) и комментарий к ней (в колонке Описание), Макрокоманду можно вводить в строку с клавиатуры, но можно воспользоваться и списком, который доступен в ячейках колонки Макрокоманда. В колонке Описание можно ввести объяснение выполняемых действий или любой другой текст, на выполнение макрокоманды он никак не повлияет. Правила хорошего тона, принятые среди программистов, требуют введения в этом поле комментариев, достаточных для понимания структуры и назначения макроса и отдельных его операторов (макрокоманд).

Для добавления в макрос других макрокоманд надлежит перейти к следующим строкам и повторить вышеописанные действия. Access будет выполнять действия в той последовательности; в которой они представлены в окне проектирования.

Модуль представляет собой совокупность объявлений и последовательности выполняемых команд (процедур), записанных на языке Visual Basic for Application. Модулей имеет оригинальное название в рамках базы данных. Процедуры модуля представляет собой замкнутые фрагменты кода и обладают самостоятельностью, т.е. могут использоваться самостоятельно.

Для создания модуля можно:

  • выбрать закладку Модули и в ней кнопку Создать;

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

Второй способ является более правильным при назначении событий для объектов.

Отличительной особенностью VBA для Access является именование объектов. В дальнейшем будем обращаться к объекту форма. Синтаксис обращения к нему имеет вид

Forms![имя формы]!элемент управления.свойство

Задание 14.1

Создать форму для расчета стоимости автомобиля в различных денежных единицах: долларах США, Евро и немецких марках.

Указание

  1. Создайте автоформу в один столбец по таблице Автомобили и назовите ее Цена в УЕ.

  2. Выполните ее изменение как показано на рис. 14.1. При создании кнопок определите следующие действия: “Назад- переход к предыдущей записи; Вперед - переход к следующей записи; Выход - закрытие формы; для кнопку с названием Валюта в дальнейшем будет назначена процедура. При создании переключателей используется элемент управления группа, для которой определяется три переключателя.

Рис. 14.1. Вид формы после изменения

Выполните описание глобальных переменных для курсов валют до написания каких либо процедур.

Dim d as Single, c as Single, dm as Single

4. Назначьте ряд процедур для событий элементов управления и формы (см. табл. 14.1).

Таблица 14.1

Элементы управления и соответствующие им процедуры модуля

Объект

Имя

Событие

Процедура

Первый

переключа-

тель группы

Псрсключатсль28

Получение

фокуса

Public Sub Переключатель28_GotFocus

Dim Цена As Single

If Forms![Цена в УЕ] ! [Название модели]

<> "" then

Цена = [Заводская цена] + [Предпродажная подготовка] + [Транспортные издержки]

Forms![Цена в УЕ]!Поле40 =d

Forms![Цена в УЕ]!Поле38 = Цена /

Forms![Цена в УЕ]!Поле40

Forms![Цена в УЕ]!Надписъ44.Caption =

"Доллар"

End If

End Sub

Второй

Переключа-тель группы

Псрсключатсль30

Получение

фокуса

Public Sub Переключатель30_GotFocus

Dim Цена As Single

If Forms![Цена в УЕ] ! [Название модели]

<> "" then

Цена = [Заводская цена] + [Предпродажная подготовка] + [Транспортные издержки]

Forms![Цена в УЕ]!Поле40 = e

Forms![Цена в УЕ]!Поле38 = Цена /

Forms![Цена в УЕ]!Поле40

Forms![Цена в УЕ]!Надписъ44.Caption =

"Евро"

End If

End Sub

Третий

Переключа-тель группы

Псрсключатсль32

Получение

фокуса

Public Sub Переключатель32_GotFocus

Dim Цена As Single

If Forms![Цена в УЕ] ! [Название модели]

<> "" then

Цена = [Заводская цена] + [Предпродажная подготовка] + [Транспортные издержки]

Forms![Цена в УЕ]!Поле40 = dm

Forms![Цена в УЕ]!Поле38 = Цена /

Forms![Цена в УЕ]!Поле40

Forms![Цена в УЕ]!Надписъ44.Caption =

"Марка"

End If

End Sub

Форма

Form

Открытие

формы

Private Sub Form.Open(Cancel Аз Integer)

d = 32

e= 34

Переключатель28_GotFocus

End Sub

Кнопка для обновления

курса

Кнопка54

Нажатие на кнопку

Private Sub Кнопка54_Click()

Обновление _валюты

End Sub

Кнопка для

перехода к

следующей

записи

Кнопка45

Нажатие

на кнопку

Private Sub Кнопка45_Click()

'Переход к следующей записи

DoCmd.GoToRecord , , acNext

'Активизация первого переключателя

Forms![Цена в УЕ]!Группи25.Value = 1

'Расчет стоимости

Переключатель28_GotFocus

Forms![Цена в УЕ]!Поле38 = " "

End Sub

Кнопка для

перехода к

предыдущей

записи

Кнопка46

Нажатие

на кнопку

Private Sub Кнопка46_Click()

'Переход к предыдущей записи

DoCmd.GoToRecord , , acPrevious

'Активизация первого переключателя

Forms![Цена в УЕ]!Группи25.Value = 1

'Расчет стоимости

Переключатель28_GotFocus

Forms![Цена в УЕ]!Поле38 = " "

End Sub

Кнопка для

закрытия

формы

Кнопка53

Нажатие

на кнопку

Private Sub Кнопт53_Click()

DoCmd.Close

End Sub

Запишите вспомогательные процедуры в том же окне модуля.

Sub Обновление_валюты()

d = InputBox("Курс доллара")

е = InputBox("Курс евро ")

dm = InputBox("Курс марки ")

Проверка

End Sub

Sub Проверка()

If Forms![Цена в УЕ]!Группа25 = 1 Then

Переключатель28_GotFocus

Е1зеIf Forms![Цена в УЕ]!Группа25 = 2 Then

Переключатель30_GotFocus

Else

Перекяючатель32_GotFocus

End If

End Sub

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

Задание 14.2

Измените форму и процедуры таким образом, чтобы для выбора валюты использовалось поле со списком. Информация

Для организации единой системы по работе с построенной базой данных создается Главная кнопочная форма - Сервис I Служебные программы /Диспетчер кнопочных форм.

Создание кнопочной формы состоит из двух разделов: создание страниц и создание команд на странице.

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

Для построенной базы данных о продаже автомобилей определим четыре страницы: Автомобили - главная страница; Ввод данных; Диаграммы и Отчетность.

Рис. 14.2. Вид окна со списком страниц кнопочной формы

Для создания страниц надо: в окне Диспетчера кнопочных форм выбрать кнопку Создать и для новой страница определить название. По мере создания формируется список страниц (см. рис. 14.2).

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

Изменение элемента кнопочной Формы

Рис. 14.3. Вид окна для создания команды кнопочной формы

Задание 14.3

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