Тема 12. Эксплуатация базы данных

12.1. Подготовка общего интерфейса базы данных

         В предыдущих разделах 10 и 11 речь шла о создании форм. Разработанные формы были созданы для реализации задач определённой группы пользователей. Для хорошего тона создают общий интерфейс базы данных, которая сдаётся в эксплуатацию. Пользователь может выбрать направление на общем интерфейсе, а затем переходить к группе задач, которые его интересуют. В учебных целях, создадим ещё одну форму, которая будет начальной для работы с базой данных. Конечно, рассмотренные варианты, создания интерфейсов с использованием макросов, гиперссылок, формы навигации, могут лечь в основу общего интерфейса, но мы постараемся создать новый вид интерфейса, основанный на элементах управления, которые ещё не рассматривались. Например, интересно иметь на форме раскрывающийся список, из которого можно выбрать то, что интересует пользователя, либо блок с группой переключателей, которые помогают выбрать вариант дальнейшей работы, либо подключить Web-страницу для просмотра. Пока не заостряем вопрос на дизайне общего вида формы, а отработаем только принципы её создания.

12.1.1. Подготовка формы

         Создайте основу формы, чтобы в дальнейшем её дополнять новыми элементами, для этого достаточно спроектировать заголовок формы. Откройте форму в режиме Конструктора, в поле заголовка вставьте рисунок, отражающий логотип организации, воспользовавшись пиктограммой image351.png, отмасштабируйте рисунок. Обратите внимание, что одновременно с рисунком на поле заголовка появилось окно для надписи, заполните его (не забывайте про свойства этого элемента), как показано на рисунке 148. Сохраните форму, например под именем «Общая форма».

image352.jpg

Рис. 148. Создание заголовка для общей формы

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

         Откройте созданную форму в режиме Конструктор. На поле «Область данных» перенесите элемент управления «Группа переключателей» (Рис. 149), предварительно раскрыв на панели список с элементами управления. Переключатели обычно применяются в тех случаях, когда предлагается выбрать один вариант из нескольких предложенных (как правило, количество переключателей создают небольшое, в противном случае, удобнее использовать элемент управления – Список).

image353.png

Рис. 149. Раскрытый список элементов управления

            В появившемся окне (Рис. 150) каждая строка соответствует названию переключателя. Чтобы добавить переключатель, заполните текстом строку со звёздочкой (Рис. 150) и нажмите на кнопку image354.png. Мастер создания переключателей будет последовательно предлагать диалоговые окна, в которых следует выбирать варианты решения (Рис. 151, 152).

image355.jpg

Рис. 150. Ввод текста около переключателя

image356.jpg

Рис. 151. Задание начального состояния переключателя

image357.jpg

Рис. 152. Выбор варианта представления блока с переключателями

            Создайте два элементарных макроса, которые будут использоваться для открытия таблицы «Личные сведения» при щелчке по первому переключателю и для открытия формы, например, «Форма с макросами». Напомним, что для создания независимого макроса, необходимо на вкладке «Создание» кликнуть по значку image358.png - Макросы. Открыть список макрокоманд, выбрать image359.png, и заполнить бланк макроса (Рис. 153). В рассматриваемом примере показан макрос для открытия формы, этот макрос понадобится для подключения к переключателю номер 2. Сохраните макрос, например с именем «Подключить форму». Для переключателя с номером 1 потребуется макрос для открытия таблицы (в разделе 11.4.1. дано подробное описание создания такого макроса), создайте новый по аналогии с примером и сохраните под именем, например, «ЛичныеСвед».

image360.png

Рис. 153. Бланк макроса для открытия формы «Форма с гиперссылками»

            Проведите операцию назначения макроса событию, которое вызывает пользователь при взаимодействии с переключателем. Выделите на форме в режиме Конструктор первый переключатель, в окне свойств активизируйте ярлык «События», для строки «Кнопка вниз» выберите из списка image361.png макрос «ЛичныеСвед» (Рис. 154). Почему выбрали событие «Кнопка вниз»? Когда создавали поле с переключателями, тогда поставили отметку, что первый будет активным, это значит, что он получил фокус, если этому событию назначить макрос, то при открытии формы, автоматически будет открываться таблица «Личные сведения», что бы этого не случилось, выбрано событие, которое имитирует нажатие мышкой на кнопку в элементе переключателе.

image362.png

Рис. 153. Назначение макроса событию «Кнопка вниз»

            Второй переключатель становится активным только после того, как по кнопке будет проведён щелчок мыши, это значит, либо в нём устанавливается фокус, либо кнопка идёт вниз (Рис. 154). Поэтому макрос «ПодключитьФорму» можно привязать к одному из указанных событий. Кстати, событие «Кнопка вверх» происходит в тот момент, когда производится нажатие на любую другую кнопку, следовательно, можно написать макрос для этого события, который будет управлять закрытием формы, таблицы или запроса.

image363.jpg

Рис. 154. Расположение группы переключателей на общей форме

12.1.3. Использование списков на форме

         Среди элементов управления существует два элемента: image364.png - Поле со списком и image365.png - Список (Рис. 149). Которые имеют аналогичные свойства, разница заключается в том, что поле первый элемент имеет кнопку для раскрытия списка, а второй имеет только линейку прокрутки. Но, при внедрении на форму списка с помощью Мастера, можно добиться различных эффектов. Рассмотрим пример, когда с помощью элемента управления image365.png «Список» на форме можно отобразить таблицы с данными.

  1. Откройте форму «Общая форма». Раскройте окно с элементами управления проверьте состояние команды image366.png, этот элемент должен быть активным. Поместите на форму элемент управления image365.png - Список. В окне мастера «Создание списков» выберите отметку image367.png (Рис. 155).

image368.png

Рис. 155. Окно мастера для создания списка на форме

  1. Напомним, что при работе с Мастером следует в последующих окнах выбирать вариант, который устраивает разработчика и нажимать на кнопку image369.png. На последующих рисунках отображены шаги работы с Мастером при создании списка на форме. Так, прежде всего, следует выбрать источник данных, для примера это будет таблица «Личные сведения» (Рис. 156). На следующем этапе (Рис. 157) в будущий список переносят в любой последовательности наименования полей из источника данных. Для удобного восприятия данных, устанавливается порядок сортировки (Рис. 158).

image370.jpg

Рис. 156. Выбор наименования таблицы, поля из которой понадобятся

image371.jpg

Рис. 157. Отбор полей для таблицы

image372.jpg

Рис. 158. Установка порядка сортировки в таблице

На этапе просмотра готовой таблицы (Рис. 159) уберите отметку в элементе image373.png, так как в таблице «Личные сведения» ключевым элементом было назначено поле «Фамилия».

image374.jpg

Рис. 159. Отображение таблицы в Мастере

Обратите внимание, что на следующем шаге будет предложено выбрать поле, которое в дальнейшем можно будет использовать для формирования запроса к данной таблице, например, выделите поле «Место рождения» (Рис. 160).

image375.jpg

Рис. 160. Выбор столбца в объекте для дальнейшего использования

image376.jpg

Рис. 161. Задание подписи, который будет содержать созданный список

            На заключительном этапе работы с Мастером (Рис. 161) требуется задать заголовок для списка, который будет отображаться в виде таблицы на форме. Нажав на кнопку image377.png, вы увидите в режиме Конструктор форму (Рис. 162), на которой будут только заготовка для списка и его заголовок. Можете воспользоваться окном свойств этого элемента, чтобы установить те параметры, которые вас устраивают. Чтобы увидеть на форме результаты творчества, перейдите в режим формы image378.png, на которой отобразится список, созданный с помощью Мастера (Рис. 163).

image379.jpg

Рис. 162. Отображение созданного списка на форме в режиме Конструктор

image380.png

Рис. 163. Список на форме, который был создан с помощью Мастера

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

12.2. Создание программных кодов для обработки событий

         Событием называется действие, которое вызывает пользователь или генерирует система. Событие производится над объектом, поэтому необходимо совершить действие, например, кликнуть мышкой, нажать на клавишу, передвинуть указатель мыши. Система совершает действия при загрузке формы, закрытии окон и т.п. Общение пользователя с интерфейсом любого приложения состоит из цепочки событий, которые он совершает. После того, как событие совершено, необходимо подключить программу, в которой заложен алгоритм изменения свойств определённого элемента управления, либо осуществление логических операций, либо проведение преобразования данных (в том числе и выполнения вычислений). Программные коды формируются с помощью макрокоманд, когда создаётся макрос. Более интересно создавать программные модули с помощью языка программирования Visual Basic (VB). В данном разделе автор поставил перед собой задачу – показать некоторые приёмы разработки программ обработки событий с помощью самостоятельного использования VBE – Visual Basic Editor. Безусловно, для серьёзных программ требуются знания в области алгоритмизации и программирования, а также опыт работы с VB (автор не теряет надежду, что большинство, изучающих практику работы с приложениями MS Office, начнут серьёзно заниматься программированием).

            Попытаемся использовать, накопленный опыт по разработке интерфейсов базы данных, при создании программных модулей. В качестве учебной задачи, остановимся на совершенствовании начальной формы под именем «Общая форма». Для этого разместим на форме элементы управления: image364.png - Поле со списком и image381.png - Кнопка. Затем напишем небольшую программу для этих элементов управления, а затем покажем, как можно обойтись без кнопки. В поле со списком должны войти наименования форм, которые созданы для подразделений организации. А при выборе из списка необходимого наименования формы, должна открываться форма. Управлять этим процессом будем с помощью кнопки.

12.2.1. Размещение элементов управления на форме

         Создадим на форме Поле со списком с помощью Мастера.  Прежде убедитесь в том, что команда image366.png (Рис. 149) находится в активном состоянии (её можно увидеть в окне с элементами управления). На этот раз в элементах управления выберите image364.png, после открытия окна выберите режим image382.png (Рис. 164).

image383.jpg

Рис. 164. Выбор варианта формирования списка

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

image384.jpg

Рис. 165. Заполнение строк таблицы наименованиями форм

image385.jpg

Рис. 166. Ввод заголовка для списка

            В режиме Конструктор на форме «Общая форма» появится только заголовок для списка и окно списка. Опять воспользуйтесь окном свойств и отредактируйте текст, размер, фон и т.п. Увидеть результат создания списка можно после того, как форма будет запущена. Если возникает необходимость дополнить список новыми записями, то это можно сделать непосредственно в режиме image386.png - Форма. Раскройте список, появится значок image387.png - Изменить элементы списка (Рис. 167 слева), щёлкните по значку, после чего в оно можно добавлять новые наименования, удалять и редактировать записи (Рис. 167 – справа). В примере добавлена новая строка «Список для отдела кадров». Если вы находитесь в режиме Конструктор, то щёлкните правой кнопкой мыши по элементу список, а затем в раскрывшемся меню по строке image388.png.

image389.png

Рис. 167. Вызов диалогового окна для изменения элементов списка

            Теперь, на форме создайте элемент image381.png - Кнопка, в этом случае image366.png следует отключить, т.к. в режиме Конструктор можно использовать свойства этого элемента и обойтись без Мастера создания кнопок, это будет гораздо быстрее. На рисунке 168 показан фрагмент формы с окном свойств кнопки. При работе со свойствами: ПодписьРасположение подписи к рисункуРисунок (открыто окно для выбора варианта рисунка, который можно разместить на кнопке) и другие, которые позволяют добиться определённого результата.

image390.jpg

Рис. 168. Размещение рисунка и подписи на кнопке с помощью окна свойств

12.2.2. Разработка программных кодов

         Цель создания программных кодов – организовать открытие готовых форм при выборе определённого названия из списка на форме. Чтобы создать программу, необходимо открыть редактор Visual Basic for Applications (VBA).

image391.pngЭту операцию можно выполнить с помощью кнопки на панели, предварительно открыв вкладку «Работа с базами данных», после чего будет открыт редактор, внешний вид которого показан на рисунке 169. Редактор имеет собственный интерфейс, на панели которого располагается строка меню и кнопки быстрого вызова. Основное поле редактора делится на несколько областей, в рассматриваемом примере их три. Область проектов слева (Project), в которой отображается форма базы данных «Общая форма». Вторая область – Свойства (Properties). Третья область – Коды (Code), в которой создаётся программа (эта область содержит созданную программу для обработки событий при работе с формой и элементами управления на ней).

image392.jpg

Рис. 169.  Программные коды описания переменных и загрузки формы

            Напомним, что Visual Basic относится к событийно-процедурным языкам программирования. Их особенностью является то, что логика программы основывается на выделении процедур, которые обрабатывают события, вызываемые либо системой, либо пользователем. При составлении программы сначала вводят общее (General) объявление переменных (Declaration) для формы, а затем создают отдельные процедуры. В рассматриваемом примере понадобится использовать две переменные, первая переменная - «НаимСтроки» предназначена для временного сохранения текста из строки, которую выбрали в раскрывающемся списке элемента на форме «Поле со списком». Вторая переменная понадобится для анализа нажатия на кнопку в диалоговом окне (о нём будет сказано ниже), эту переменную в программе обозначим буквой y, присвоим ей тип данных – целый (Integer), как показано на рисунке 170. Переменные вступят в действие после события – открыть форму «Общая форма».

image393.jpg

Рис. 170. Программа с общим описанием переменных для программы

            Одновременно с загрузкой формы, мы решили скрыть на форме кнопку image394.png, это делается для того, чтобы не возникла ошибка при первом нажатии на кнопку пользователя, когда в строке списка ничего нет. Процедура, которая отвечает за процесс, скрытия кнопки на форме (Рис. 171), состоит всего из одного оператора: Кнопка31.Visible = False кнопке, которой система присвоила номер 31, устанавливаем в свойствеVisible (Видимый) параметр – False (скрыть).

image395.jpg

Рис. 171. Процедура открытия формы

В программе есть ещё одна процедура (Рис. 172), которая необходима для отображения кнопки на форме в тот момент, когда поле со списком получает фокус, т.е. это поле активно.

image396.jpg

Рис. 172. Процедура отображения кнопки на форме, в случае наведения мышки на поле списка (получение фокуса)

            Посмотрите программу для обработки события – нажать на кнопку image394.png, которая находится на форме целиком, для того, что бы легче было ориентироваться при её создании и правки (Рис. 173).

image397.jpg

Рис. 173. Процедура обработки события – нажать на кнопку

            Процедура Private Sub Кнопка31_Click() отвечает за перехват выделенного наименования формы в строке списка, подготовки диалогового окна для пользователя о принятии решения по выполнению команды загрузки формы на экран компьютера. Поэтому, первым оператором в процедуре стоит ПолеСосписком44.SetFocus – установить фокус в строке поля со списком. Обратите внимание, что в программе наименования объектов и переменных пишут слитно (символ пробел недопустим). Вторая строка программы обозначает, что переменной НаимСтроки присваивается значение, которое находится в активной строке ПолеСоСписком44, после точки идёт указание свойства этого объекта – Text (то, что находится в виде записи в строке списка, преобразуется в текстовую переменную). Переменной y присваивается значение из функции MsgBox() - вывод на экран сообщения. На рисунке 173 эта функция занимает три строки (можно всё записать в одной строке), это сделано, что бы было удобнее читать содержимое функции, которое находится в круглых скобках. Признаком переноса строки в программном коде является сочетание двух символов – Пробел и знак подчёркивания.  С помощью функции MsgBox() формируется диалоговое окно, в котором на основном поле появляется надпись: текст, который находится в переменной НаимСтроки, переход на новую строку (функция Chr(13)), продолжение текста – «Если хотите открыть форму, нажмите Да»; далее идёт стандартное описание кнопок VbYesNo, которые появятся на диалоговом окне («Да» и «Нет»); сообщение для информационной строки «Примите решение! Вы выбрали в списке:». При нажатии на кнопку «Да», функция сгенерирует целое число 6, которое будет присвоено переменной y. Далее, используется конструкция условного оператора If (запись условия) Then. После ключевого слова Then вставляют операторы, которые будут задействованы, если условие выполняется. Ключевое слово Else необходимо, чтобы после него вставить операторы, которые будут задействованы, если условие не будет выполнено. Заканчивается условный оператор командой - End If. В данном примере, если условие будет выполнено (нажата кнопка «Да»), то выполнится открытие объекта базы данных форма с наименованием, которое содержится в переменной НаимСтроки. В противном случае, на экране пользователя появится окно с сообщением «Можете повторить просмотр списка» Логика работы программы представлена в виде блок-схемы алгоритма на рисунке 174. Основные действия заключаются в проверке содержания текста из строки списка, в случае совпадения, осуществляется открытие формы. Как видно из блок-схемы основная функция процедуры обработки события – нажать на кнопку (Click), заключается в анализе содержимого строки раскрывающегося списка (ПолеСоСписком44).

image398.png

Рис. 174. Блок-схема алгоритма поиск наименования формы в списке и открытия необходимой формы

В результате разработки главной формы («Общая форма»), пользователи получают возможность использовать все виды таблиц, запросов и форм, к которым можно обратиться с главного интерфейса базы данных, а также с интерфейсов, которые предназначены для отдельных подразделений организации. На рисунке 175 представлен интерфейс пользователя - «Общая форма» с сообщением в диалоговом окне о выборе другой формы.

image399.jpg

Рис. 175. Внешний вид общей формы в базе данных

12.3. Передача готовой базы данных пользователю

Перед тем, как передать базу данных в эксплуатацию пользователю, необходимо её тщательно протестировать, внести необходимые изменения, убедиться в том, что все требования пользователей учтены, а затем подготовить её так, чтобы при запуске базы данных, пользователь видел на экране только интерфейс. Для этой цели в Access 2010 предусмотрена специальная область image400.png настройки image401.png (Параметры приложений) в разделе - «Текущая база данных» диалогового окна «Параметры Access» (Рис.176). Внимательно ознакомьтесь с перечнем параметров, для того чтобы подготовить, созданную базу данных (текущую базу данных), к передаче в эксплуатацию. Для этого следует задать заголовок приложения и начальную форму, с которой будет открываться база данных (мы предполагаем, что первой формой должна быть – «Общая форма»).

image402.jpg

Рис. 176. Окно для установки параметров в текущей базе данных

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

Вопросы для самоконтроля

  1. Для чего создают общую форму для базы данных?
  2. Какие элементы управления удобно использовать на форме, чтобы организовать доступ к таблицам, запросам и формам?
  3. Как создать макрос и через него создать связь с объектами базы данных?
  4. Можно ли с помощью списка на форме отобразить таблицу, включающую определённый набор полей из готовой таблицы, с помощью какого средства это можно сделать?
  5. Какой язык программирования используется в MS Access для написания программных кодов?