Тема 11. Разработка на формах интерфейса пользователя

             Цель изучения темы: научиться использовать элементы управления на формах, освоить приёмы назначения команд, гиперссылок и макросов для вызова реакции системы при взаимодействии пользователя с элементами управления на формах.

11.1. Общее представление о создании интерфейсов

            Под интерфейсом пользователя следует понимать такое представление справочной и командной информации, которая сгруппирована по определённым правилам, и даёт возможность с одной формы обращаться к различным таблицам, запросам, формам, отчётам и внешним объектам, по отношению к базе данных. Любой программный продукт в виде приложения создаётся под нужды определённой категории пользователей, которым удобно ориентироваться на форме приложения, выбирать необходимые тематические направления и запускать их. Обычно при создании интерфейса пользователя используют элементы управления, например, командные кнопки, селекторные кнопки, текстовые окна для ввода информации, рисунки и т.п. Каждый элемент управления обладает свойствами (для изменения внешнего вида элемента) и методами – небольшими программами, которые позволяют выполнять определённые действия, когда к этим элементам обращается пользователь. В серьёзных приложениях все возможные действия пользователя алгоритмизируются, по алгоритмам создают программу обработки события взаимодействия пользователя с элементом управления. Разработчики Access 2010 учли потенциальные потребности пользователей при взаимодействии с интерфейсом, который должен помогать осуществлять навигацию среди множества объектов (таблиц, запросов, форм, отчётов). Разработчику базы данных предложены варианты подходов при создании интерфейсов пользователя. Каждый подход имеет свои недостатки и достоинства, но, тем не менее, когда хотят оперативно создать интерфейс, используют самые простые возможности Access 2010. Связи между элементом управления (Рис. 129), внедрённого на форму, и объектом, который следует представить пользователю, организуются с помощью: встроенных программ (методов), которыми обладают элементы управления; гиперссылок; макросов и программных модулей на встроенном языке VBA.

image301.jpg

Рис. 129. Элементы управления на вкладке «Работа с макетами форм»

11.2. Разработка формы навигации

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

image303.png

Рис. 130. Варианты создания вкладок на форме навигации

            Например, выбрали вариант image304.png, после того, как откроется форма навигации (Рис. 131), её можно заполнять и редактировать.

  1. Дважды щёлкните по кнопке [Создать], введите текст, например, «Список выплат». Откройте окно свойств, активизируйте ярлык «События», раскройте список в строке «Нажатие кнопки», нажмите на текст «Процедура обработки событий»   (Рис. 132).

image305.jpg

Рис. 131. Внешний вид формы навигации

image306.jpg

Рис. 132. Назначение процедуры обработки события для кнопки

  1. Укажите имя формы, которая будет связана с кнопкой. Для этого активизируйте ярлык «Данные», раскройте список image307.png в строке image308.png, выберите наименование формы, например, «Список для отдела кадров» (Рис. 133).

image309.png

Рис. 133. Выбор формы для связывания с кнопкой

  1. Откройте ярлык «Макет», измените свойства для этого ярлыка, например, Цвет при наведении мыши на ярлык, размер шрифта, цвет ярлыка и т.п.
  2. Щёлкните по следующему ярлыку «Создать», введите следующее название, проведите операции по установлению события, укажите другую форму из имеющегося списка, и измените свойства макета. В том случае, если была закрыты форма навигации, то для её редактирования щёлкните правой кнопкой мыши по форме, а затем в меню выберите строку image310.png. Пример созданной формы в режиме Макета, показан на рисунке 134.

image311.png

Рис. 134. Пример созданной формы для навигации

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

11.3. Разработка интерфейса пользователя с элементами управления и гиперссылками

            Объекты, которые входят в состав базы данных Access, являются самостоятельными элементами. Пользователю требуется организовать доступ к внешним объектам, к таблицам, к запросам, к отчётам, решить эту многоплановую задачу без какого-либо программирования можно, создав форму, в которой используются элементы управления, а связями между формой и отдельными объектами базы данных являются гиперссылки. Удобством разработки такого интерфейса является то, что не требуется создавать специальных программных модулей. Предположим, планово-экономическому отделу организации необходимо выполнять такие функции, как: вносить изменения в наименования должностей сотрудников; изменять коэффициенты доплат; готовить презентационные материалы для доклада руководству. Следовательно, необходимо подготовить такой интерфейс, который позволяет с одной формы осуществлять взаимодействие сотрудника планово-экономического отдела с таблицами, внешними приложениями, запросами и готовыми формами. Наиболее простой вариант решения такой задачи – создать общую форму для подключения других объектов, а связями будут являться гиперссылки. Спроектируем интерфейс таким образом, что пользователь увидит две вкладки. На первой будет группа объектов, которые доступны для внесения изменений, на второй – объекты, которые требуются для анализа данных. Удобнее всего начать работу с нуля, для этого на панели базы данных щёлкните по значку image312.png - Пустая форма.

  1. Щёлкните на вкладке «Работа с макетами форм» по элементу image313.png - Вкладка, перенесите её на поле формы. Откройте свойства этого элемента (в левом углу панели – Страница свойств).
  2. Измените свойства элемента «Вкладка1». Пусть текст в поле Подпись будет – «Просмотр и правка»; выберите рисунок, раскрыв образцы image314.png в поле Рисунок.
  3. Перенесите на вкладку необходимые элементы управления. Для начала создайте заголовок на вкладке с помощью элемента image315.png - надпись, перенесите на вкладку, введите текст, например, Доступные материалы для Планово-экономического отдела, отформатируйте надпись.
  4. Перенесите на вкладку элемент image316.png - Кнопка. Сделайте надпись на кнопке, например, «Открыть таблицу Excel для правки номенклатуры должностей.
  5. Перенесите на вкладку элемент Надпись, введите текст, например, «Талица Личные сведения сотрудников».
  6. Установите гиперссылки для кнопки и последней надписи. Для этого в окне свойств элемента найдите строку «Адрес гиперссылки», нажмите на значок image314.png, проложите путь к файлу. На рисунке 135 показан пример создание гиперссылки на таблицу «Личные сведения» для надписи (не забывайте раскрывать окно с подсказкой и заполнять его понятным текстом).

image317.jpg

Рис. 135. Пример создания гиперссылки на объект базы данных

            Аналогичным образом создайте имя второй вкладки на форме, установите на неё необходимые элементы управления, создайте гиперссылки для связи с объектами базы данных или внешними файлами. Сохраните форму, например, под именем «Форма с гиперссылками», на рисунке 136 показан внешний вид формы после запуска на исполнение.

image318.png

Рис. 136. Пример созданной формы с элементами управления и гиперссылками для связи с объектами

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

            Напомним, что Access 2010 содержит заранее разработанные различные типы макрокоманд, позволяющие автоматизировать работу приложения. Под макросом следует понимать набор из одной или нескольких макрокоманд, выполняющие определённые операции. Поэтому, задачей разработчика является продумать сценарий действий, которые должны происходить с объектами базы данных, а затем под каждое отдельное действие – подобрать макрокоманду. Макросы создают простые, состоящие из одной макрокоманды и сложные, включающие логические операции и несколько макрокоманд, связанных между собой. В этом разделе рассмотрены возможности, которые могут быть реализованы с помощью макросов.

11.4.1. Как создать и запустить макрос

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

  1. Обратитесь к вкладке «Создание», на которой есть группа «Макросы и код» (справа), которая показана на рисунке 137, нажмите на значок Макрос.

image319.png

Рис. 137. Группа «Макросы и код»

image320.png

Рис. 138. Окно для создания макроса

  1. В окне «Макрос1» (Рис. 138) раскройте список image321.png, выберите имя макрокоманды «Окно сообщения», после чего, будет раскрыт бланк для составления сообщения. Например, в строку с наименованием «Сообщение» введите текст «Будет открыта таблица, в которую можно вводить изменения», в строку с наименованием «Тип» вставьте из списка «Предупреждающее!», в строку с наименованием «Заголовок» введите «ВНИМАНИЕ !!!» (первая часть макроса готова).
  2. Создайте второе действие, которое должен совершать макрос, в окне макроса раскройте список image322.png, выберите макрокоманду image323.png, заполните строки в бланке макроса. В итоге, должно получиться, как показано на рисунке 139.

image324.jpg

Рис. 139. Макрос, включающий 2 шага действий

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

            Осталось самое главное, сделать так, чтобы макрос запускался без участия пользователя, т.е. макрос следует привязать к какому-то объекту. Воспользуемся уже готовой формой с наименованием «Форма с гиперссылками», на первую вкладку добавим элемент управления – Надпись, назначим этому элементу управления макрос image325.png. Порядок выполнения состоит из следующих шагов.

  1. Щёлкните правой кнопкой мыши в окне переходов по наименованию формы - image326.png, откройте её командой image283.png.
  2. Перенесите на форму элемент управления image315.png - Надпись. Откройте окно свойств этого элемента, в поле Подпись введите текст «Просмотр должностей и окладов сотрудников организации». Так же можете изменить свойства других полей, например, цвет фона, размер шрифта и т.п. (Рис. 140).
  3. Проведите операцию привязки макроса к элементу управления. Откройте в свойствах ярлык «События», раскройте список символом image045.png (в списке будут появляться имена макросов), выберите макрос «Открываем таблицу» (Рис. 140). Сохраните форму.

image327.jpg

Рис. 140. Назначение макроса «Открываем таблицу» элементу управления – Надпись («Просмотр должностей и окладов сотрудников организации»)

  1. Проверьте работу макроса. Запустите форму image326.png, щёлкните мышью по элементу image328.jpg на экране должно появиться сначала сообщение (Рис. 141), когда будет нажата кнопка image329.png, тогда появится таблица.

            Обратите внимание, что макрос был сконструирован из макрокоманд, которые находятся в списке системы Access. Удобством использования макроса является и то, что он распространяется на все типы объектов базы данных.

image330.jpg

Рис. 141. Сообщение на экране пользователя, которое было создано в макросе

11.4.2. Создание сложного макроса

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

Для решения поставленной задачи понадобится иметь две формы. Первая форма – главная, которая содержит список должностей на определённый момент времени в организации. Вторая форма – подчинённая, должна содержать сведения, которые интересуют руководителя. Из подчинённой формы должны выбираться данные, относящиеся к условию, которое задаёт руководитель. Следовательно, связь между формами возлагается на программу, которая формируется с помощью макросов. Выполним несколько шагов для решения, поставленной задачи.

Шаг 1. Разработка главной формы для руководителя.

  1. Создайте форму в режиме Мастер, в которой будет отражена информация о наименовании должностей на предприятии. В качестве основы возьмите таблицу image331.png. Перенесите на форму поля «Должность» и «Оклад». Вид представления выберите «Ленточный». Дайте имя этой форме, например, «Форма с макросами». На рисунке 142 показана эта форма, которая получилась весьма невыразительной при открытии.

image332.png

Рис. 142. Форма с перечнем должностей в организации

  1. Внесите изменения и добавления в созданную форму. Раскройте список в «Режимы» (в левом углу панели базы данных), выберите image333.png или нажмите на значок image334.png в правой нижней части окна базы данных. В режиме Конструктор сдвиньте вправо поля в окне «Область данных», поместите элемент управления image335.png - Кнопка слева от окон для вывода информации. Проведите редактирование и форматирование формы и полей на форме с помощью окна свойств, в итоге получится похожее на то, что представлено на рисунке 143. Сохраните готовую форму.

image336.jpg

Рис. 143. Представление формы «Форма с макросами» в режиме Конструктор после проведения операций форматирования

  1. Создайте макрос, который будет выполняться при нажатии кнопки. Откройте форму «Форма с макросами» в режиме Конструктор, щёлкните правой кнопкой мыши на кнопке image337.png и выберите в контекстном меню команду image338.png.  В появившемся окне выбрать Макросы и нажать на кнопку ОК. Если после нажатия на команду image338.png сразу откроется окно для построения макроса, то выберите в списке image339.png наименование макрокоманды: image340.png. Эта макрокоманда выполняет операцию присвоения значения из главной формы для поиска сведений в подчинённой форме. Обратите внимание, что на панели базы данных появилась новая закладка «Работа с макросами», на этой закладке открылся бланк для макрокоманды «ЗадатьВремПеременную», необходимо заполнить две строки. В строку «Имя» введите имя временной переменной, в которую будут передаваться данные из главной формы. Например, зададим имя переменной Stuff (Рис. 144). Чтобы это происходило во вторую строку «Выражение» бланка макроса, следует записать имя поля в главной форме, в котором будет находиться значение данного. Например, если будет нажата кнопка на главной форме против должности «Менеджер», то это слово и будет передано во временную переменную. В рассматриваемом примере, в качестве выражения выбираем из таблицы поле с наименованием «Должность».

image341.png

Рис. 144. Закладка с бланком для создания макроса

            Шаг 2. Выбор подчинённой формы и связывание её с главной формой

  1. Выбор подчинённой формы можно осуществить из уже имеющихся форм или создать новую форму. В данном примере, создана специальная форма с наименованием «Для руководителя» (Рис. 145).

image342.jpg

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

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

  1. Продолжите создавать макрос для обработки события – нажатие на кнопку image337.png на главной форме image343.png.  Если главная форма в режиме конструктора была закрыта, то откройте её. Для входа в бланк макроса выделите кнопку на форме, активизируйте в свойствах кнопки ярлык image344.png, а затем щёлкните по значку image345.png в строке image346.png, после чего будет открыт макрос.
  2. Добавьте новую макрокоманду (Рис. 146), предварительно раскройте список image322.png, из которого выберите строку с наименованием image347.png.

image348.png

Рис. 146. Бланк с макрокомандами «Открыть форму»

  1. В этом бланке найдите в списке имя формы, например, «Для руководителя» (можете выбрать любую готовую форму, но в ней должно присутствовать поле с именем «Должности»). В строку условие отбора введите выражение [Должность]=[TempVars]![Stuff], это выражение означает, что переменная [Должность] из подчинённой таблицы сравнивается с временной переменной из главной таблицы [Stuff] (в этой переменной находится наименование должности, против, которой щёлкнули мышкой по кнопке), поэтому процедура [TempVars] (выбрать временное значение) осуществляет просмотр всех записей в подчинённой таблицы и отображает только те, которые удовлетворяют условию.
  2. Установите в строке бланка макроса «Режим окна» - Окно диалога. Это делается для того, чтобы пользователь мог просматривать данные, собранные из подчинённой таблицы, в соответствии с поставленным условием. Сохраните макрос, а затем закройте форму (обязательно дайте подтверждение о её сохранении). Проверьте работу формы для руководителя, запустите форму image343.png, нажмите в форме на кнопку против строки «Менеджер», и получите в результате открытые главную и подчинённую формы (Рис. 147).

image350.jpg

Рис. 147. Результат работы макроса в форме

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

  1. Каким образом можно расположить элемент управления на форме?
  2. Как задать свойства элементу управления?
  3. Какие средства используют для организации выполнения действий, после того как пользователь обратится к элементу управления?
  4. Можно ли создать интерфейс пользователя для взаимодействия с несколькими формами без использования элементов управления на форме?
  5. При создании формы навигации, что отражается на ярлыке вкладки, что отображается на поле вкладки?
  6. Как связать элемент управления на форме с необходимым объектом внутри базы данных и с внешним объектом с помощью гиперссылки?
  7. Как спроектировать макрос для внедрения в форму?
  8. Можно ли создавать макросы с условиями, как это сделать?
  9. Где отображаются макросы, накопленные в базе данных, что необходимо сделать, чтобы запустить макрос?
  10. Какие недостатки существуют в методике разработки формы навигации?