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

Базы Данных

.pdf
Скачиваний:
162
Добавлен:
04.06.2015
Размер:
5.09 Mб
Скачать

5. Создание и использование макросов

ИСПОЛЬЗОВАНИЕ МАКРОСА ДЛЯ ОТМЕНЫ ПЕЧАТИ ОТЧЕТА

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

1.Открыть отчет в Режиме макета.

2.На вкладке Упорядочить щелкнуть команду Страница свойств.

3.В Окне свойств отчета перейти на вкладку События.

4.Выбрать событие Отсутствие данных.

5.Щелкнуть кнопку «…».

6.В диалоговом окне Построитель выделить пункт Макросы и щелкнуть кнопку Ok. Откроется Построитель макросов.

7.В первой строке бланка построителя макросов в столбце Макрокоманда в выпадающем списке выбрать макрокоманду Сообщение.

8.В области Аргументы макрокоманды, расположенной в нижней части бланка построителя макросов, в строку Сообщение ввести фразу предупреждающего сообщения. Например, записать «Нет данных».

9.Можно изменить значение аргумента Сигнал (при Да выдача звукового сигнала при отображении окна сообщения). С помощью аргумента Тип можно определить значок, который будет появляться в окне сообщения (например, значок «!» для предупреждающего типа сообщения).

10.Во второй строке бланка построителя макросов указать макроко-

манду ОтменитьСобытие.

11.На вкладке Конструктор щелкнуть кнопку Закрыть. Построитель макросов закроется, а для события Отсутствие данных будет отображено значение [Внедренный макрос].

12.Отчет сохранить и закрыть.

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

210

5. Создание и использование макросов

5.2. ОТРАБОТКА ПРАКТИЧЕСКИХ НАВЫКОВ: ВЫПОЛНЯЕМ ЗАДАНИЕ 5

1. Сформировать группу макросов AutoKeys. В группу включить два макроса. Первый макрос должен запускаться при нажатии клавиш Ctrl+1.

Внем предусмотреть выполнение операций:

открытие в Режиме таблицы запроса 1, созданного в задании 2;

вывод предупреждающего сообщения о том, что при закрытии окна с данным сообщением закроется также и запрос 1;

закрытие запроса 1.

Второй макрос должен запускаться при нажатии клавиш Ctrl+2 и копировать одну из таблиц текущей базы данных в ту же базу данных под новым именем.

2. Построить макрос AutoExec, который при открытии базы данных обязан осуществлять действия:

открытие кнопочной формы;

разворачивание окна кнопочной формы;

блокировка области переходов;

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

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

ЗафиксироватьОбластьПереходов, при этом аргументу Блокировка

присвоить значение Да. Блокировка области переходов необходима для того, чтобы пользователь не смог разрушить целостность базы данных (путем переименования, удаления каких-либо объектов базы данных, изменения настройки области переходов).

3. Для каждой из форм 1 – 3, построенных в задании 4, создать внедренный макрос, который проверяет, содержит ли определенное поле формы, запрещенные значения – значения, нарушающие целостность базы данных. Контролируемые поля выбрать самостоятельно.

211

5. Создание и использование макросов

4.Создать изолированный макрос, который отменяет печать отчета, если в источнике записей отчета отсутствуют данные. Этот макрос привязать к отчетам 1 – 5, сформированным в задании 3.

5.Для всех отчетов и форм, созданных в заданиях 3, 4, организовать пользовательское контекстное меню, в котором предусмотреть команды: «Сохранить», «Печать», «Закрыть» активный объект базы данных.

6.Для каждого из запросов 1 – 7, созданных в задании 2, построить изолированный макрос, открывающий этот запрос в Режиме таблицы с возможностью изменения данных. Внести в кнопочную форму страницу, ассоциированную с запросами, привязав созданные изолированные макросы к соответствующим кнопкам этой страницы. Свойство Модальное окно для кнопочной формы установить в состояние Нет. В противном случае для просмотра результатов запроса придется закрывать окно кнопочной формы.

7.Ответить на контрольные вопросы.

212

5. Создание и использование макросов

5.3. КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Для чего предназначены макросы? Какие типы макросов допускаются в Access? Какие способы запуска макросов существуют в Access?

2.Чем изолированный макрос отличается от внедренного макроса?

3.Для чего предназначены группы макросов? Когда целесообразно использовать группы макросов вместо совокупности изолированных макросов? Допускается ли обращение к макросу, входящему в группу?

4.Какие действия следует предпринять, чтобы вызвать Построитель макросов? Какие команды содержит вкладка Конструктор, доступная в Построителе макросов? Для чего предназначены эти команды?

5.Какие столбцы всегда отображаются в бланке построителя макросов? Когда заполняется столбец Имя макроса? Куда вносятся значения аргументов макрокоманды?

6.Каковы правила заполнения столбца Условие в бланке построителя макросов? Что произойдет, если условие, заданное для макроса не выполняется? Может ли одно условие относиться к последовательности макросов? Как вызвать Построитель выражений при заполнении столбца

Условие?

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

8.Какими способами можно запустить изолированный макрос? Продемонстрируйте эти способы на одном из макросов, созданных вами.

9.Для чего предназначен режим пошагового выполнения макроса? Как можно воспользоваться этим режимом? Как можно отменить пошаговый режим? Запустите созданный вами макрос в режиме пошагового выполнения.

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

11.Какими способами можно запустить макрос, входящий в группу макросов? Что произойдет, если в команде Выполнить макрос указать имя группы макросов?

213

5. Создание и использование макросов

12.Как связать изолированный макрос с некоторым событием? Где можно найти перечень событий, характерных для того или иного объекта базы данных? Для каких целей целесообразнее всего использовать изолированные макросы обработки событий?

13.Как выполнить привязку изолированного макроса к кнопке? Приведите примеры.

14.Как построить внедренный макрос? Имеет ли внедренный макрос имя? Появляется ли внедренный макрос в области переходов? Для каких целей традиционно используют внедренные макросы обработки событий?

15.Для чего предназначена группа макросов AutoKeys? Как она создается? Как запускаются макросы из AutoKeys? Можно ли осуществить запуск макроса из AutoKeys с помощью команды Выполнить? Что произойдет, если AutoKeys запустить непосредственно из области переходов?

16.Для чего предназначен макрос AutoExec? Каким образом он создается? Как он запускается? Какие макрокоманды обычно включают в макрос AutoExec? Как обойти действия макроса AutoExec?

17.Какие действия необходимо выполнить для формирования пользовательского контекстного меню с помощью макросов? Как объявить созданное с помощью макросов контекстное меню глобальным?

18.Каким образом изолированный макрос может быть преобразован

вмодуль VBA?

19.Каким образом можно отменить печать отчета, если его источник записей пуст?

20.Какие команды предусмотрены в группе Макрос вкладки Работа с базами данных? Продемонстрируйте работу этих команд.

21.Для чего предназначена макрокоманда ПриОшибке? Приведите пример ее употребления.

22.Для чего предназначена макрокоманда ЗадатьСвойство? Приведите пример ее применения.

23.Для чего предназначены макрокоманды Восстановить, Развернуть, Свернуть? Приведите примеры их использования.

214

НАСТРОЙКА 6БАЗЫ ДАННЫХ

Когда база данных создана, следует предпринять меры по сохранности базы данных в процессе эксплуатации и настроить ее в соответствии с конкретными нуждами пользователей. Например, при наличии большого числа пользователей можно разделить базу данных на части. Чтобы ограничить доступ к базе данных, можно задать пароль, который запрашивается при попытке открыть базу данных. Можно ограничить доступ к отдельным объектам базы данных (таблицам, запросам, отчетам, формам). Отдельные поля таблиц, запросов и форм также можно защитить от просмотра и редактирования. Во время эксплуатации базы данных возможны ее повреждения вследствие неправильной работы пользователей, программных и аппаратных сбоев, плохого энергоснабжения. Решением этой проблемы является резервное копирование базы данных. Все эти и подобные им действия относятся к администрированию базы данных. СУБД Access обладает достаточным набором средств администрирования баз данных. Знакомство с ними – цель настоящей темы.

6.1. НЕМНОГО ТЕОРИИ

Параметры настройки базы данных Создание резервной копии базы данных Сжатие и восстановление базы данных Разделение базы данных

Создание ACCDE-файла

Применение пароля для открытия базы данных Установка параметров запуска Скрытие и отображение объектов и групп

6. Настройка базы данных

ПАРАМЕТРЫ НАСТРОЙКИ БАЗЫ ДАННЫХ

До сих пор рассматривались способы настройки отдельных групп объектов базы данных. Однако в Access можно настраивать и сами базы данных. Настройка базы данных выполняется с целью

обеспечения целостности данных;

защиты данных;

восстановления базы данных после сбоев;

учета требований пользователей.

Все эти мероприятия входят в функции администрирования базы данных. СУБД Access располагает минимальным набором средств администрирования базы данных. К ним относятся

создание резервной копии базы данных;

сжатие и восстановление базы данных;

разделение базы данных;

создание откомпилированного двоичного файла (ACCDE-файла);

применение пароля для открытия базы данных;

установка параметров Access (параметров запуска базы данных);

скрытие и отображение объектов и групп в области переходов.

СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ

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

Возникает вопрос, чем обычная копия базы данных отличается от резервной копии? Обычная копия – двойник оригинала, но только с другим именем. Резервная копия по размерам, как правило, меньше оригинала, т.к. при резервном копировании автоматически производится сжатие пространства, занимаемого базой данных.

216

6. Настройка базы данных

Обычную копию базы данных можно создать командой Копировать контекстного меню операционной системы Windows XP (или Windows Vista). Для формирования резервной копии необходимо выполнить следующие шаги.

1.Открыть базу данных.

2.Щелкнуть кнопку Microsoft Office. Навести указатель на пункт

Управление, а затем в группе Управление базой данных выбрать команду Резервная копия базы данных.

3.В открывшемся окне Сохранение в поле Имя файла будет предложено имя резервной копии. Следует согласиться с этим именем или заменить его.

4.Для завершения операции нажать кнопку Сохранить.

Примечание. Обратите внимание на имя, предлагаемое Access в окне Сохранение. К имени копируемой базы данных Access всегда добавляет дату создания резервной копии. Предложенное имя можно заменить. Однако лучше всего его оставить, т.к. далее дата создания резервной копии может быть полезной при восстановлении базы данных.

Размер дискового пространства, занимаемого резервной копией, интересно сравнить с размером оригинала. Для этого нужно щелкнуть правой кнопкой мыши по значку файла резервной копии (оригинала) и выбрать команду контекстного меню Свойства. Откроется окно Свойства. На вкладке Общие этого окна всегда указывается размер файла. Если база данных открыта, то окно Свойства можно воспроизвести с помощью команды Свойства базы данных, которая находится в пункте Управление, отображаемого при нажатии кнопки Microsoft Office.

СЖАТИЕ И ВОССТАНОВЛЕНИЕ БАЗЫ ДАННЫХ

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

217

6. Настройка базы данных

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

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

Для сжатия и восстановления базы данных надо осуществить надлежащую последовательность действий.

1.Открыть базу данных.

2.Щелкнуть кнопку Microsoft Office. Навести указатель на пункт

Управление, а затем в группе Управление базой данных выбрать команду Сжать и восстановить базу данных.

На экране не будет никаких изменений. Не будет также никаких предложений сохранить базу данных под новым именем. Возможно только изменение размера базы данных. Результаты восстановления могут проявиться лишь тогда, когда были обнаружены поврежденные и содержащие ошибки объекты базы данных. Если поврежденные объекты не удалось восстановить, то они отбрасываются, информация о них заносится в специальную таблицу MSysComactErrors, которую Access открывает автоматически. Указанные в MSysComactErrors объекты можно в дальнейшем импортировать в базу данных из резервной копии.

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

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

218

6. Настройка базы данных

РАЗДЕЛЕНИЕ БАЗЫ ДАННЫХ

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

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

Для разделения базы данных нужно выполнить следующие действия.

1. Открыть базу данных.

3.На вкладке Работа с базами данных в группе Переместить дан-

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

4.Нажать кнопку Разделить.

5.В диалоговом окне Создание базы данных с таблицами задать имя и местоположение файла данных с таблицами. Рекомендуется использовать имя, предложенное Access. Оно представляет собой имя исходной базы данных, к которому добавлены символы «_be».

6.После завершения работы мастера появится сообщение, подтверждающее результат.

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

рации Разделение базы данных.

219