Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка по БД 1480

.pdf
Скачиваний:
53
Добавлен:
22.03.2016
Размер:
698.54 Кб
Скачать

– 41 –

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

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

Целесообразно создавать элементы управления (например, кнопки) для вызова макросов. Это значительно упрощает и ускоряет доступ к ним.

Если нужной панели инструментов нет на экране, ее следует открыть. Для этого в меню «Вид» выбрать команду «Панели инструментов», а затем подкоманду «Настройка». На вкладке «Панели инструментов» установить флажок для панели инструментов, к которой нужно добавить кнопку.

Чтобы быстро добавить кнопку, запускающую макрос, следует перетащить с помощью мыши значок нужного макроса из окна базы данных на панель инструментов.

Создание кнопки с помощью мастера. Открыть форму в режиме

конструктора и воспользоваться инструментом «Кнопка»

на «Панели

элементов».

 

После указания места размещения кнопки на форме

запускается

«Мастер создания кнопок». Работа с ним состоит из нескольких шагов. Для перехода к следующему шагу нажимается кнопка «Далее», а для

завершения работы с «Мастером» – кнопка «Готово».

На 1-м шаге в поле «Категория» нужно выбрать параметр «Разное», а в поле «Действия» – «Запуск макроса». На 2-м шаге следует выбрать нужный макрос из списка имеющихся в базе данных. На 3-м шаге – задать рисунок или текст, который должен быть на кнопке. На 4-м шаге – задать имя кнопки для дальнейших ссылок на нее.

Создание кнопки без помощи «Мастера»:

«Конструктора».

«Мастера создания кнопок» нажатием кнопки на панели элементов (если она была активна). Выбрать элемент «Кнопка» на панели элементов и указать в форме место расположения и размер кнопки.

инструментов База данных. «Нажатие кнопки» на вкладке «События» указать имя макроса, который должен выполняться при нажатии создаваемой кнопки.

Чтобы поместить на кнопку подпись, нужно ввести ее текст в свойстве. «Подпись» на вкладке «Макет». Вместо подписи на кнопку можно поместить рисунок, выбрав свойство «Рисунок».

– 42 –

Создание кнопки с помощью мыши. Кнопку, запускающую макрос,

можно также создать, перетащив с помощью мыши название макроса из окна базы данных в окно конструктора формы в область заголовка проекта формы.

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

Имя макроса автоматически появляется внутри кнопки. Если оно слишком длинное, размер кнопки следует увеличить. Чтобы на кнопке была видна вся надпись, можно уменьшить размер шрифта или создать надпись, отличающуюся от имени макрокоманды. Редактирование надписи осуществляется после щелчка по кнопке. Для выхода из режима редактирования достаточно щелкнуть вне кнопки.

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

Для создания макроса AutoExec существует два способа:

1) создать макрос, содержащий макрокоманды, которые требуется выполнить при открытии базы данных и сохранить его под именем AutoExec; 2) в окне базы данных выделить ранее созданный макрос, выбрать в меню «Правка» команду «Переименовать» и присвоить макросу новое имя – AutoExec.

При следующем открытии базы данных Microsoft Access автоматически запустит этот макрос.

П р и м е ч а н и е : е сли требуется загрузить базу данных, не выполняя при этом макрос AutoExec, следует открыть базу данных при нажатой клавише SHIFT.

Рекомендации. Для создания макроса, открывающего таблицы, рекомендуется выполнить следующие действия:

Перейти на вкладку «Макросы», нажать кнопку «Создать», вследствие чего откроется окно конструктора макроса. Выбрать в меню «Окно» команду «Слева направо», чтобы на экране отображались и окно базы данных, и окно макроса.

В окне базы данных перейти на вкладку «Таблицы». Перетащить с помощью мыши таблицу «Студенты» в окно макроса и разместить в первой ячейке столбца «Макрокоманда». Таким образом, в макрос включается операция открытия таблицы «Студенты».

В столбец «Примечание» той же строки ввести текст: «Открытие

– 43 –

таблицы «Студенты».

С помощью клавиши «Enter» перейти во вторую строку столбца «Макрокоманда».

В списке макрокоманд выбрать «НаЗапись» и установить аргументы: таблица «Студенты» и «Последняя запись». Таким образом, после открытия таблицы текущей станет последняя запись. В столбец «Примечание» ввести текст: «Переход на последнюю запись».

Щелкнуть в следующей свободной ячейке столбца «Макрокоманда» и открыть список доступных макрокоманд. Выбрать команду «Выполнить команду». В области «Аргументы» макрокоманды активизировать поле «Команда» и выбрать в списке элемент TileVertically. Таким образом, в макрокоманду будет включена операция разделения экрана в случае открытия нескольких окон. В столбце «Примечание» набрать текст: «Упорядочение окон».

Сохранить макрос с именем «Открытие БД». Осуществить запуск макроса.

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

Примечание. При создании макроса рекомендуется активизировать кнопку панели «По шагам»:

1.Создать на панели инструментов кнопку для запуска макроса «Просмотреть отчет». Выполнить макрос, щелкнув мышью по его кнопке на панели инструментов;

2.Если на кнопке нет текста, его можно установить, щелкнув правой кнопкой мыши и выбрав опцию «Настройка». При открытом окне «Настройка» вновь щелкнуть правой клавишей на кнопке макроса и установить режим «Значок и текст».

3.Создать кнопочную форму, разместив на ней элементы (кнопки)

для:

открытия базы данных;

открытия запроса;

просмотра отчета.

Кнопки будут использоваться для запуска ранее созданных макросов.

4.Изменить размеры кнопок, шрифты для надписей, цвета. Сохранить форму с именем «Главная форма».

5.Создать автоматически выполняемый макрос с именем AUTOEXEC для открытия формы «Главная форма». Чтобы проверить работоспособность макроса, нужно закрыть, а затем вновь открыть базу данных.

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

1.Что такое макрокоманда?

– 44 –

2.Что такое макрос?

3.Как создать макрос?

4.Какие существуют способы запуска макроса?

5.Какие ошибки могут появиться при выполнении макроса и как их исправить?

6.Как добавить на панель инструментов кнопку, запускающую

макрос?

7.Как в режиме формы создать кнопку для запуска макроса?

8.Для чего предназначен макрос AutoExec?

9.Как создать макрос AutoExec?

10.Как загрузить базу данных, не выполняя макрос AutoExec?

 

 

 

 

– 45 –

 

 

 

 

 

 

 

 

 

Приложение 1

 

 

Выражения в Access

 

 

Выражение

 

 

 

Описание

 

 

 

 

 

 

 

 

 

 

 

>234

 

Числа, превышающие 234

 

 

 

 

 

 

 

 

 

 

 

 

Between #02.02.93# And

 

Даты в диапазоне от 2-фев-93 до 1-дек-

 

 

#01.12.93#

 

93

 

 

 

 

 

<1200.45

 

Числа, меньшие чем 1200,45

 

 

 

>="Иванов"

 

Все фамилии, начиная с «Иванов» и до

 

 

 

 

 

конца алфавита

 

Примеры условий на значение поля в таблицах и элементах управления форм

 

 

 

 

 

 

 

 

 

 

Условие на значение поля

 

 

Сообщение об ошибке

 

 

<>0

Введите, пожалуйста, значение, отличное от

 

 

 

 

нуля.

 

 

 

 

 

0 Or >100

Значение должно быть либо равно 0, либо

 

 

 

 

больше 100.

 

 

 

 

 

Like "K???"

Значение должно содержать четыре символа

 

 

 

 

и начинаться с буквы K.

 

 

<#1/1/96#

Введите дату, предшествующую 1996.

 

 

 

>=#1/1/97# And <#1/1/98#

Дата должна быть в пределах 1997 года.

 

 

 

StrComp(UCase([Фамилия]),

Данные в поле «Фамилия» должны

 

 

 

[Фамилия],0) = 0

вводиться прописными буквами.

 

 

 

=[СтоимостьЗаказа]+[СтоимостьДоставки]

Сумма значений полей

 

 

 

 

 

 

 

«СтоимостьЗаказа» и

 

 

 

 

 

 

 

«СтоимостьДоставки».

 

 

 

=[ДатаНазначения]-[ДатаИсполнения]

Разность значений полей

 

 

 

 

 

 

 

«ДатаНазначения» и

 

 

 

 

 

 

 

«ДатаИсполнения».

 

 

 

=[Цена]* 1,06

 

 

 

Результат умножения

 

 

 

 

 

 

 

значения поля «Цена» на

 

 

 

 

 

 

 

1,06 (добавление 6

 

 

 

 

 

 

 

процентов к значению

 

 

 

 

 

 

 

поля «Цена»).

 

 

 

=[Количество]*[Цена]

 

 

 

Произведение значений

 

 

 

 

 

 

 

 

полей «Количество» и

 

 

 

 

 

 

 

«Цена».

 

 

 

=[КоличествоСотрудников]/[КоличествоСтран]

Результат деления

 

 

 

 

 

 

 

 

значения поля

 

 

 

 

 

 

 

«КоличествоСотрудников»

 

 

 

 

 

 

 

на значение поля

 

 

 

 

 

 

 

«КоличествоСтран».

 

 

 

=Avg([СтоимостьДоставки])

 

 

Использует функцию Avg для

 

 

 

 

 

 

отображения среднего значения

 

 

 

 

 

 

элемента управления

 

 

 

 

 

 

«СтоимостьДоставки».

 

 

 

 

– 46 –

 

 

 

 

 

=Count([КодЗаказа])

 

 

Использует функцию Count для

 

 

 

 

отображения количества записей в

 

 

 

 

элементе управления «КодЗаказа».

=Sum([Продажи])

 

 

Использует функцию Sum для

 

 

 

 

отображения суммы значений

 

 

 

 

элемента управления «Продажи».

=Sum([Количество]*[Цена])

 

 

Использует функцию Sum для

 

 

 

 

отображения суммы произведений

 

 

 

 

значений элементов управления

 

 

 

 

«Количество» и «Цена».

=[Продажи]/Sum([Продажи])*100

 

Отображает относительные

 

 

 

 

значения продаж, определенные

 

 

 

 

путем деления значения из

 

 

 

 

элемента управления «Продажи» на

 

 

 

 

сумму всех значений этого

 

 

 

 

элемента управления.

 

 

 

 

Примечание. Если свойство

 

 

 

 

Формат поля (Format) данного

 

 

 

 

элемента управления имеет

 

 

 

 

значение Процентный, не следует

 

 

 

 

включать в выражение множитель

 

 

 

 

* 100.

 

 

 

=Date()

 

Использует функцию Date для отображения

 

 

текущей даты в формате дд.мм.гг, где дд

 

 

означает день (от 1 до 31), мм означает месяц

 

 

(от 1 до 12), а гг означает последние две цифры

 

 

года (в диапазоне от 1980 до 2099).

=Format(Now(), "ww")

 

Использует функцию Format для отображения

 

 

последовательного номера недели года для

 

 

текущей даты, где ww представляет номер

 

 

недели в диапазоне от 1 до 53.

=DatePart("yyyy",

 

Использует функцию DatePart для отображения

[ДатаРазмещения])

 

года в значении поля «ДатаРазмещения». Год

 

 

отображается четырьмя цифрами

=DateAdd("y", -10,

 

Использует функцию DateAdd для отображения

[Дата])

 

даты, наступающей на 10 раньше даты,

 

 

заданной значением поля «Дата».

=DateDiff("d",

 

Использует функцию DateDiff для отображения

[ДатаРазмещения],

 

числа дней между значениями полей

[ДатаИсполнения])

 

«ДатаРазмещения» и «ДатаИсполнения».

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

Поле

Выражение

Описание

ОбластьДоставки

Is Null

Отображает заказы для клиентов,

 

 

у которых поле

 

 

«ОбластьДоставки» является

 

– 47 –

 

 

 

 

 

 

пустым.

ОбластьДоставки

Is Not Null

Отображает заказы для клиентов,

 

 

у которых поле «РайонДоставки»

 

 

содержит какое-либо значение.

Факс

" "

Отображает заказы для клиентов,

 

 

у которых нет факсимильного

 

 

аппарата, то есть для тех клиентов,

 

 

у которых поле «Факс» содержит

 

 

пустую строку, а не значение Null.

ПунктНазначения

"Киев"

Отображает заказы на доставку

 

 

товаров в Киев.

ПунктНазначения

"Киев" Or "Минск"

Использует оператор Or для

 

 

отображения заказов на доставку

 

 

товаров в Киев или Минск.

ДатаОтгрузки

Between #05.01.95#

Использует оператор

 

And #10.01.95#

Between...And для отображения

 

 

заказов на отгрузку товаров не

 

 

ранее 5-янв-95 и не позднее 10-

 

 

янв-95.

ДатаОтгрузки

#2/2/95#

Отображает заказы на отгрузку

 

 

товаров 2-фев-95.

СтранаДоставки

In("Канада",

Использует оператор In для

 

"Великобритания")

отображения заказов на доставку

 

 

товаров в Канаду или

 

 

Великобританию.

СтранаДоставки

Not "США"

Использует оператор Not для

 

 

отображения заказов на доставку

 

 

товаров во все страны, за

 

 

исключением США.

ИмяКлиента

Like "С*"

Заказы на доставку товаров

 

 

клиентам, имена которых

 

 

начинаются с буквы С.

Название

>="Н"

Отображает заказы на доставку

 

 

товаров в фирмы, названия

 

 

которых начинаются с букв,

 

 

находящихся в диапазоне от Н до

 

 

Я.

КодЗаказа

Right([OrderID],

Использует функцию Right для

 

2)="99"

отображения заказов, код которых

 

 

заканчивается на 99.

Название

Len([Название])

Использует функции Len и Val

 

>Val(30)

для отображения заказов для

 

 

фирм, названия которых состоят

 

 

из более чем 30 символов.

– 48 –

Приложение 2

Процедура обработки нажатия кнопки

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

On Error GoTo Err_Кнопка8_Click

DoCmd.GoToRecord , , acNewRec

Exit_Кнопка8_Click:

Exit Sub

Err_Кнопка8_Click:

MsgBox Err.Description

Resume Exit_Кнопка8_Click

End Sub

Процедура присваивания значения полю

Private Sub КодТовара_AfterUpdate()

On Error GoTo Err_КодТовара_AfterUpdate

– 49 –

Dim strFilter As String

'Определяет фильтр перед его передачей в функцию DLookup. strFilter = "КодТовара = " & Me!КодТовара

'Ищет поле "Цена" и присваивает его значение элементу

управления "Цена".

Me!Öåíà = DLookup("Цена", "Товары", strFilter)

Exit_КодТовара_AfterUpdate:

Exit Sub

Err_КодТовара_AfterUpdate:

MsgBox Err.Description

Resume Exit_КодТовара_AfterUpdate

End Sub

– 50 –

Библиографический список

1.Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений. –/ Под ред. проф. А.Д. Хомоненко. - 3-е изд. испр. и доп. – СПб.: КОРОНА - принт, 2003. – 666 с.

2.Карпова Т. С. Базы данных: модели, разработка, реализация. — СПб.: Питер, 2001. — 304 с.: ил.

3.Дубнов П.Ю. Access 2000. Проектирование баз данных. – М.: ДМК,2000. – 272 с.: ил.

4.Microsoft Access 2000. Шаг за шагом: Практическое пособие /Пер.

сангл.– М.: Издательство ЭКОМ, 2000.– 352 с.: ил.

Содержание

Лабораторная работа № 1. Создание баз данных средствами MS Access. Типы данных в таблицах БД……… ………………………………..3 Лабораторная работа № 2. Создание форм для ввода данных в среде MS ACCESS ……………………………………………….………………21 Лабораторная работа № 3. Создание запросов для анализа данных в среде MS ACCESS………………………………………….……..……............30 Лабораторная работа № 4. Создание отчетов для вывода данных в среде MS ACCESS ………………………………………..………………….…36 Лабораторная работа № 5 Создание страниц доступа к данным и макросов в среде MS ACCESS ....……………………….……………………… .37 Приложение 1. Выражения в Access………..…………………………….. 45 Приложение 2. Процедура обработки нажатия кнопки………….……….48

Библиографический список…………………………………………………50 Содержание…………………………………………………………………50