Создание пользовательского интерфейса в Access
Формы
Формы являются основой разработки диалоговых приложений пользователя для работы с базой данных. Формы, адекватные формам первичных документов, позволяют выполнять загрузку справочных, плановых и оперативно-учетных данных, в любой момент просматривать и редактировать содержимое ранее введенных в базу данных документов, оформлять новые документы. Формы обеспечивают удобную работу с данными одной или нескольких взаимосвязанных таблиц. Данные из таблиц выводятся на экран с использованием макета формы, разработанного пользователем. Работая с формой, пользователь может добавлять, удалять и изменять записи таблиц, получать расчетные данные. В процессе работы может осуществляться контроль вводимых данных, могут проверяться ограничения на доступ к данным, выводиться необходимые дополнительные сведения.
Форма состоит из элементов управления, которые отображают поля таблиц и графические элементы, не связанные с полями таблиц. Элементы управления предназначены, прежде всего, для разработки макета формы: размещения полей таблиц и запросов, надписей, внедряемых объектов (рисунков, диаграмм), вычисляемых полей, а также кнопок, выполняющих печать и открывающих другие объекты или задачи. Как форма в целом, так и каждый из ее элементов обладают множеством свойств. Посредством их изменения можно настроить внешний вид, размер, местоположение элементов в форме, определить источник данных формы, режим ввода/вывода, привязать к элементу выражение, макрос или программу.
Набор свойств доступен в соответствующем окне, где они разбиты на категории, каждая из которых представлена на своей вкладке. Основными вкладками в окне свойств являются:
Макет — представляет свойства, ориентированные на определение внешнего вида формы или ее элементов;
Данные — представляет свойства для определения источника данных формы или ее элементов, режима использования формы (только ввод, разрешение на изменение, добавление, удаление и т. п.);
События — событиями называют определенные действия, возникающие при работе с конкретным объектом или элементом: нажатие кнопки мыши, изменение данных (до обновления, после обновления), открытие или закрытие формы и т. д. Они могут быть инициированы пользователем или системой. С событием могут связываться макрос или процедура обработки события на языке VBA, выполняющие некоторые действия или рассчитывающие значения. Например, в процедуре можно организовать открытие связанной формы, обновление данных таблицы расчетными значениями, печать формы, вывод отчета. Запрограммировав в процедурах вызов различных объектов базы данных, можно автоматизировать выполнение задач приложения.
Для быстрого создания формы предназначены мастера Access.
Формы в Access могут быть представлены в трех режимах.
Режим формы предназначен для ввода, просмотра и корректировки данных таблиц, на которых основана форма.
Режим макета обеспечивает просмотр данных почти в таком виде, в каком они отображаются в режиме формы, и в тоже время позволяет изменять форму. В этом режиме элементы формы становятся выделяемыми, их можно перетаскивать в другие места, редактировать содержимое надписей полей, изменять формат, размер и т. п. Режим макета позволяет удобно настраивать внешний вид формы и может использоваться для внесения большинства структурных изменений. В Access 2010–2013 появилась возможность в режиме макета выполнять действия, ранее доступные только в режиме конструктора. В режиме макета стала доступной лента Конструктор (Design). И все-таки, если некоторую задачу невозможно выполнить в режиме макета, следует переключиться в режим конструктора. В ряде случаев в Access отображается сообщение о том, что для внесения изменений надо переключиться в режим конструктора.
Конструктор предназначен для разработки формы с помощью полного набора инструментов, обеспечивающего более детальную проработку структуры формы, использование всех элементов управления. В этом режиме форму можно разработать с нуля или доработать ее после создания мастером. Просмотр данных при внесении изменений в этом режиме не предусматривается.
Однотабличные формы
Однотабличная форма предназначена для загрузки, просмотра и корректировки данных одной таблицы. Источником данных такой формы служит единственная таблица. Она может быть легко создана одним щелчком мыши с помощью команд автоматического создания формы: Форма (Form), Разделенная форма (Split Form) или Несколько элементов (Multiple Items), размещенных на вкладке ленты Создание (Create) в группе Формы (Forms) . Для последующей настройки формы в соответствии с требованиями пользователя ее можно доработать в режиме макета или конструктора. Можно удалить из формы ненужные поля, изменить расположение элементов управления и подобрать их размеры, добавить новые элементы управления, произвести вычисления, задать свойства формы и ее элементов управления.
Редактирование формы в режиме макета
В режиме макета можно просматривать данные практически так же, как в режиме формы, и в то же время вносить изменения в форму. Это средство функционирует по принципу WYSIWYG (что видим, то и получаем), и позволяет вносить изменения в форму и тут же видеть результат внесенных изменений, что очень удобно для уточнения местоположения, размера, шрифта элементов управления, изменения текста надписей и выполнения других задач, связанных с внешним видом и удобством формы. При отображении формы в режиме макета появляются вкладки ленты инструментов Работа с макетами форм | Конструктор (Form Layout Tools | Design), Упорядочить (Arrange) и Формат (Format), которые сохраняются на экране, пока активно окно формы и не выполнено переключение в другой режим. При уменьшении размеров окна Access сворачиваются группы ленты. При этомкоманды группы можно открыть с помощью значка списка.
Макеты элементов управления
Макет элементов управления — это объединение элементов управления в группу,для которой произведено выравнивание по вертикали и горизонтали для единообразного оформления формы. В форме может быть несколько макетов элементов управления. Макет можно рассматривать как таблицу, в столбцах которой размещены элементыуправления. Естественно в таблице можно менять только ширину всего столбцаили всей строки, а не отдельных ее ячеек. В макете, как и в таблице, можно перемещать значение из одной ячейки в другую.
Добавление полей в форму
В режиме макета возможно удаление и добавление полей в форму. Для удаления поля достаточно выделить его вместе с наименованием и в контекстном меню выполнить команду Удалить (Delete). Можно предварительно поле удалить из макета. Для добавления полей в форму щелкните на кнопке Добавить поля (Add Existing Fields) на вкладке ленты Конструктор (Design) в группе Сервис (Tools). Отобразится область Список полей (Field List) базовой таблицы или запроса, источника данных формы. Добавить поле в активный макет формы можно двойным щелчком на нем. Для размещения поля в любом макете формы перетащите его туда из области Список полей (Field List). В режиме макета в группе Элементы управления (Controls) на вкладке ленты Конструктор представлен набор элементов, для включения которых в форму нет необходимости переходить в режим конструктора. Этот набор содержит элементы для создания поля, надписи, списка, поля со списком, флажка, кнопки и т. п. Набор элементов управления режима макета в сравнении с доступным в режиме конструктора несколько усечен.
Создание формы на основе запроса
Если в базе данных уже имеется запрос, в котором выбраны таблицы, нужные для получения результата, определены поля, которые необходимо включить в результат, параметры, сделаны вычисления, целесообразно создавать форму на основе такого запроса.
Создание разделенной формы
Разделенная форма позволяет синхронно отображать данные одного источника в двух представлениях: в режиме формы и в режиме таблицы. В любой части разделенной формы можно производить изменение данных — добавление, обновление или удаление, которые тут же будут отображаться в другом представлении. При выделении поля в одной части формы выделяется то же поле в другой части.
Вычисления в форме
Вычисления в форме могут осуществляться как в каждой записи формы, так и для группы записей при формировании итоговых величин. Вычисляемые величины отображаются в поле формы, но, в отличие от создаваемых в таблице вычисляемых полей, не сохраняются в таблице.
Вычисления в каждой записи формы
Чтобы произвести вычисления на основе данных каждой записи формы, необходимо создать элемент управления вычисляемое поле, источником данных которого является выражение для расчета. Для создания такого элемента управления откройте форму в режиме макета или конструктора. Оба режима на ленте конструктора имеют в группе Элементы управления (Controls) кнопку Поле (Text Box). Нажмите ее и поместите вычисляемое поле в нужном месте области данных. Затем введите выражение в элемент, называемый Свободный (Unbound). Выражение должно начинаться со знака равенства (=). В качестве операндов выражения чаще всего используются имена полей и константы, а в качестве операторов — знаки арифметических операций.
Создание вычисляемого поля в форме аналогично созданию такого поля в запросе.
Вычисление итоговых значений
Вычисление итоговых значений в форме выполняется в примечании формы с помощью встроенных статистических функций, записываемых в выражениях в вычисляемых элементах управления.
Многотабличные формы
Многотабличная форма создается для работы с данными нескольких взаимосвязанных таблиц. Источником данных такой формы является многотабличный запрос.
При этом форма также может быть простой, отображающей одну запись в столбик, или ленточной, отображающей все записи в табличном виде с надписями в заголовке формы. Для создания такой формы могут быть использованы команды Форма (Form) или Несколько элементов (Multiple Items). Форма, построенная на многотабличном запросе, может быть названа одиночной. Многотабличная форма может быть составной: состоять из главной формы и одной или нескольких подчиненных включаемых форм. Подчиненная форма, как правило, строится на основе таблицы, подчиненной таблице-источнику записей главной формы, т. е. находится с ней в отношении 1 : М. Подчиненная форма отображает данные из всех записей подчиненной таблицы, которые связаны с записью, отображаемой в главной форме. Для разработки такой формы можно воспользоваться следующими средствами:
На основе главной таблицы создать командой Форма простую форму с макетом в столбик.
На основе подчиненной таблицы командой Несколько элементов создать ленточную форму — это многозаписевая форма.
Закрыть вторую форму, оставив первую открытой в режиме макета.
Перетащить вторую форму из области навигации в первую форму, она отобразится в элементе управления Подчиненная форма/отчет (Subform/Subreport).
Если не установилась связь между формами, следует в главной форме открыть свойства элемента управления Подчиненная форма/отчет и на вкладке Данные (Data) заполнить строки Основные поля (Link Master Fields) и Подчиненные поля (Link Child Fields). Это можно сделать с помощью построителя, вызываемого в строке свойства Основные поля
Отчеты
Средства Access по разработке отчетов предназначены для конструирования макета отчета, в соответствии с которым осуществляется вывод данных из определенного источника записей в виде выходного печатного документа. Эти средства позволяют создавать отчет любой сложности, обеспечивающий вывод взаимосвязанных данных из многих таблиц, их группировку, вычисление итоговых значений, фильтрацию и анализ данных в любых разрезах. При этом могут быть выполнены самые высокие требования к оформлению документа.
Перед началом конструирования пользователь должен спроектировать макет отчета. При этом определяется состав и содержание разделов отчета, размещение в нем значений, выводимых из полей таблиц (запросов) базы данных, и вычисляемых реквизитов, определяются поля, по которым нужно группировать данные. Для каждого уровня группировки определяются заголовки и примечания, вычисляемые итоговые значения. Кроме того, оформляются заголовки и подписи реквизитов отчета. Определяется также порядок вывода данных в отчете.
Отчет может создаваться с помощью мастера или в режиме конструктора отчетов. Во многих случаях удобно использовать мастер отчетов. Созданный мастером отчет можно доработать в режиме конструктора. При необходимости вывода в отчете результатов решения задачи в качестве основы для отчета может быть использован многотабличный запрос, представляющий эти результаты. На запрос могут быть возложены наиболее сложные виды выборки и предварительной обработки данных. Разнообразные возможности конструктора отчетов позволят легко структурировать и оформить полученные в запросе данные.
Access позволяет создать профессионально оформленные отчеты не только с помощью мастера или конструктора, но и в режиме макета. При этом простыми средствами перетаскивания в отчет нужных полей из таблиц базы данных строится запрос — источник записей отчета, а использование свойств WYSIWYG позволяет сразу увидеть, как именно будут выглядеть содержащиеся в нем данные на странице, и усовершенствовать макет.
Основы конструирования отчетов
Чтобы правильно создавать отчеты, необходимо понимать назначение каждого его раздела. Например, от выбора раздела, в который будет помещен вычисляемый элемент управления, зависит способ вычисления результата.
Назначение каждого из разделов:
Заголовок отчета (Report Header) обычно включает эмблему (логотип) компании, название отчета, дату. Заголовок отображается перед верхним колонтитулом только один раз в начале отчета;
Верхний колонтитул (Page Header) отображается вверху каждой страницы и используется в случае, когда нужно, чтобы название отчета и другая общая информация повторялись на каждой странице;
Заголовок группы (<имя поля> Header) используется при группировке записей отчета для вывода названия группы и однократного отображения полей, по которым производится группировка. Отображается перед каждой новой группой записей. Например, если отчет сгруппирован по покупателям, в заголовке группы можно указать название покупателя, а также адрес, телефон и другие реквизиты. Допускается до 10 уровней группировки выводимых записей;
Область данных (Detail) отображает записи из источника данных, составляющие основное содержание отчета;
Примечание группы (<имя поля> Footer) служит для отображения итогов и другой сводной информации по группе в конце каждой группы записей. Если поместить в примечание группы вычисляемый элемент управления, использующий статистическую функцию Sum, сумма будет рассчитываться для текущей группы;
Нижний колонтитул (Page Footer) применяется для нумерации страниц и отображения другой информации внизу каждой страницы;
Примечание отчета (Report Footer) служит для отображения итогов и другой сводной информации по всему отчету один раз в конце отчета. Если в примечании отчета поместить вычисляемый элемент управления, использующий статистическую функцию Sum, сумма рассчитывается для всего отчета.
Вставка или удаление заголовка и примечания отчета могут быть выполнены командой контекстного меню отчета Заголовок/примечание отчета (Report Header/Footer). Кроме того, заголовок и примечание отчета вставляются при добавлении в отчет элементов управления Заголовок (Title), Эмблема (Logo) или Дата и время (Date & Time). Для включения или удаления колонтитулов можно воспользоваться командой контекстного меню Колонтитулы страницы (Page Header/ Footer).
Заголовок и примечание группы добавляются в отчет после определения его источника данных и выбора в области Группировка, сортировка и итоги (Group, Sort, and Total) поля группировки и поля, по которому следует рассчитать итоги. Область Группировка, сортировка и итоги выводится под макетом отчета по команде Группировка (Group & Sort) на ленте Конструктор или по команде Сортировка и группировка (Group & Sort) из контекстного меню режима конструирования.
При создании отчета его разделы нужно заполнить элементами в соответствии с разработанным пользователем макетом отчета. В заголовок помещается текст из шапки макета отчета. В верхний и нижний колонтитулы обычно помещают надписи с поясняющим текстом, в том числе заголовки столбцов отчета, номера страниц. При определении содержания этих разделов следует исходить из требований к оформлению отдельных страниц отчета. Поля таблиц базы данных или запросов с неповторяющимися значениями размещаются в области данных, которой можно придать вид табличной части отчета.
Поля с повторяющимися значениями, по которым производится группировка записей, целесообразно размещать в заголовке группы. Здесь же отображаются данные, которые позволяют идентифицировать группу.
Элементами разделов отчета, кроме полей таблиц или запросов, на которых строится отчет, являются также тексты подписей, внедряемые объекты, линии, прямоугольники и т. п. Для каждого элемента, а также раздела и отчета в целом, могут быть уточнены свойства. Технология размещения элементов и определения их свойств практически такая же, как и при разработке форм. Инструменты разработки отчетов представлены на вкладках лент, которые связаны с режимами изменения и просмотра отчетов, и появляются при переходе из одного режима в другой.
В Access существуют два представления, в которых можно вносить изменения в отчет: режим макета и режим конструктора. Режим макета является наиболее удобным для внесения изменений в отчет, поскольку пользователь сразу видит данные отчета. В этом режиме доступны большинство инструментов, необходимых для его настройки. В нем можно изменить ширину столбцов, поменять их местами, добавить или изменить уровни группировки и итоги. Можно также разместить в макете отчета новые поля, а также задать свойства отчета и элементов управления. В режиме конструктора отображаются разделы отчета и доступны дополнительные инструменты и возможности разработки. Переходите в режим конструктора, если не удается выполнить изменения в режиме макета. В определенных случаях в Access отображается сообщение о том, что для внесения изменений следует переключиться в режим конструктора.
Просматривать отчет можно в режимах Представление отчета (Report View), Предварительный просмотр (Print Preview) или Макет (Layout View). В режиме Представление отчета можно отфильтровать данные для отображения только заданных строк, найти нужные данные, скопировать текст отчета или его часть в буфер обмена. Режим предварительного просмотра предназначен для просмотра отчета перед печатью. В этом режиме можно увеличивать масштаб для просмотра деталей или уменьшать его для проверки размещения данных на странице, изменять параметры страницы. Режим макета позволяет, просматривая данные отчета, изменять его макет.