Моор С.М., Моор П.К., Моор А.П. - Информационные технологии управления (1092190), страница 27
Текст из файла (страница 27)
Все имена объектов, из которых строится выражение, заключены в квадратные скобки, причем перед именем поля может стоять восклицательный знак (!) разделяющий имя поля и имя таблицы. Отметим, что выбор полей лучше производить из редактируемого запроса, а не из таблиц.
Если по завершении формирования выражения (например, на рисунке 11.11 задано выражение для поля, которое будет равно сумме заказа) щелкнуть по кнопке ОК, то полученный результат будет перенесен в запрос. В текущей ячейке появится текст выражения, перед которым будет стоять имя этого поля – «Выражениеn:», которое целесообразно заменить более подходящее, например, на «Сумма:» (двоеточие является разделителем и он должен присутствовать в записи определения вычисляемого поля).
Построитель выражений может быть использован также для построения условий отбора записей.
11.5.5. Запрос с группировкой
Запросы с группировкой отличаются от обычных запросов. В них поля делятся на 2 типа:
- поля, по которым осуществляется группировка данных;
- поля, для которых проводятся итоговые вычисления.
Для составления такого запроса, находясь в режиме конструктора, можно воспользоваться командой Групповые операции из меню Вид.
В результате этого в бланке запроса появится строка Групповая операция. Если для соответствующего поля из списка выбрать функцию Группировка (рис. 11.12), то при выполнении запроса записи по этому полю группируются (объединяются) по значениям в этом поле.
Группировка в итоговом запросе производится, как правило, по небольшому числу полей (одно – два). Во всех остальных полях вводятся итоговые (агрегатные) функции.
Access предоставляет ряд агрегатных функций, обеспечивающих вычисление итогов в групповых операциях. Функцию можно задать, набрав на клавиатуре ее имя в строке Групповая операция или выбрать ее из раскрывающегося списка.
Основные групповые функции:
SUМ - вычисляет сумму всех значений заданного поля (для числовых или денежных полей), отобранных запросом;
AVG - вычисляет среднее значение в тех записях определенного поля, которые отобраны запросом (для числовых или денежных полей);
MIN - выбирает минимальное значение в записях определенного поля, отобранных запросом;
MAX – выбирает максимальное значение в записях определенного поля, отобранных запросом;
COUNT – вычисляет количество записей, отобранных запросом в определенном поле, в которых значения данного поля отличны от нуля.
Рис. 11.12. Строка Групповая операция
11.5.6. Выполнение запроса
Готовый запрос выполняется при выборе кнопки «Открыть» в окне БД. Из режима конструктора запрос выполняется по команде Запуск из меню Запрос или по кнопке панели инструментов. В результате будет получена таблица с данными, определенными этим запросом.
Переключение в режим Конструктора и обратно в режим отображения результатов запроса может быть выполнен с помощью левой кнопки Вид на панели инструментов: или
– она меняется в зависимости от режима, в котором мы находимся. Отметим, что выполнение запроса-действия при этом не происходит.
Например, на рис 11.13 показан результат запроса, построенного по запросу рис. 11.12.
Рис. 11.13. Результат выполненного запроса
11.6. Формы в MS Access
Формы являются основным средством организации интерфейса пользователя в приложениях Access. Хорошо разработанные формы позволяют работать с приложением даже неподготовленному пользователю.
Чаще всего формы создаются в следующих целях:
-
отображение содержимого БД на экране в удобном для пользователя виде;
-
ввод и редактирование данных – формы обеспечивают вывод на экран данных в удобном для редактирования виде;
-
вывод сообщений – с помощью форм можно вывести на экран информацию, предупреждение или сообщение.
Для создания формы следует в окне базы данных перейти на вкладку Формы и нажать кнопку Создать, после чего на экране появится окно Новая форма. В данном окне предлагается выбрать источник данных для формы и способ ее создания. Access предлагает следующие способы создания форм:
-
Конструктор форм. Этот способ позволяет разрабатывать собственные экранные формы с заданными свойствами для просмотра, ввода и редактирования данных.
-
Мастер форм. Позволяет достаточно быстро создать форму на основе выбранных для нее данных.
-
Автоформа: в столбец. Позволяет автоматически создать для исходной таблицы/запроса форму, в которой все поля располагаются в один столбец.
-
Автоформа: в ленточная. Позволяет автоматически создать для исходной таблицы/запроса форму, в которой все поля записи расположены в строку.
-
Автоформа: табличная. Позволяет автоматически создать табличную форму, которая внешне аналогична таблице.
-
Сводная таблица. Для создания сводной таблицы используется MS Excel, и MS Access внедряет ее в форму как объект.
Для вариантов создания автоформ в столбец ленточной и табличной необходимо выбрать источник данных для создания формы.
11.6.1. Использование Мастера по созданию форм
По сравнению с автоформами, Мастер позволяет создавать более разнообразные по содержанию и стилю оформления: они могут содержать выбранные поля из нескольких связанных таблиц или запросов. Для запуска Мастера форм нужно в окне Новая форма выбрать соответствующий вариант создания формы – «Мастер форм».
На 1 шаге Мастера форм необходимо определить источник данных и поля будущей формы. После указания имени таблицы (запроса) в списке Доступные поля появляется перечень всех полей данной таблицы. Из этого перечня необходимо перенести все нужные поля в список Выбранные поля.
На 2 шаге предлагается задать внешний вид формы: в один столбец, ленточный, табличный или выровненный.
На 3 шаге выбирается стиль формы из списка вариантов стилей.
На 4 шаге открывается последнее окно Мастера форм, где нужно ввести имя создаваемой формы и вариант дальнейшей работы (открытие формы для просмотра или изменение макета формы).
11.6.2. Разработка сложных форм
Создать форму, позволяющую просматривать и редактировать записи только одной таблицы, довольно просто. Но на практике требуются формы, позволяющие производить одновременное отображение данных, хранящихся в нескольких связанных таблицах или запросах. Например, при выводе информации о поставщиках, было бы неплохо сразу отображать информацию о его заказах. Эти данные реально хранятся в двух разных таблицах, связанных отношением «один-ко-многим».
Можно создать форму, которая позволит вводить, редактировать и просматривать все эти данные одновременно. В таких случаях используется форма с подчиненной. В ней в основную форму внедряется форма, в которой отображаются записи, соответствующие данным, отображаемым в основной форме (рис. 11.16).
Наиболее простым способом создания таких форм является использование Мастера форм.
Как видно из рисунка, форма состоит из двух частей. В верхней половине окна формы находятся поля таблицы Поставщики, т.е. таблицы со стороны “один”. В нижней половине находится подчиненная форма, содержащая поля из запроса Запрос1 (таблица со стороны “много”).
Рисунок 11.16. Пример формы с подчиненной
Рассмотрим последовательность действий для создания такой формы. Отметим, что для ее построения необходимо использовать результат запроса, который был рассмотрен ранее – «Запрос1», так как в подчиненной форме отображается поле «Сумма». Для создания такой формы нужно:
1. Перейти на вкладку Формы в окне базы данных, нажать кнопку Создать и выбрать в качестве режима создания Мастер форм;
2. В окне Создание формы в качестве источника записей формы выберем сначала таблицу «Поставщики» и из нее поля – «Фирма» и «Адрес». Затем выберем запрос «Запрос1» и из него поля «Товар», «Цена», «Количество» и «Сумма» (рис. 11.17);
3. В следующем окне Мастера форм определить содержание главной и подчиненной формы. Здесь следует выбрать вид представления данных – «Поставщики». В правой части данного окна диалога отображаются поля форм: в верхней части поля главной, а в нижней – подчиненной (рис. 11.18).
Заметим, что если на шаге 3 Мастера не будет предложен вариант создания формы с подчиненной, то это означает, что на предыдущих шагах (например, при построении запроса) были допущены ошибки (например, в запросе «Запрос1» вместо внешнего ключа «Код_П» выбран первичный «Код_Поставщика»).
Рис. 11.17. Мастер создания формы: шаг 2
Рис. 11.18. Мастер создания формы: шаг 3
4. Далее следует выбрать внешний вид подчиненной формы: табличный или ленточный. Выберем ленточную форму, так как в дальнейшем в подчиненную форму мы добавим отображение общей сумму заказов. Эта характеристика будет отображаться в области примечания подчиненной формы, а для табличной формы она, не отображается.
5. На последующих шагах Мастера форм выбрать стиль, задать имена форм, а также указать режим, в котором будет открыта форма после завершения ее создания. При сохранении формы с подчиненной в окне форм появится в нашем случае не одна, а две формы. Назовем их «Поставщики» и Поставщики П».
11.6.3. Редактирование формы в режиме Конструктора
В режиме Конструктора можно отредактировать формы, созданные Мастером, и создавать новые формы любой степени сложности. Однако, создание форм с помощью Конструктора довольно непростая задача. Мы рассмотрим только способ редактирования форм. Любая форма в Access состоит из различных объектов, которые имеют некоторые свойства. Процесс редактирования формы в режиме Конструктора состоит в удалении или размещении объектов в областях формы и определении для них свойств. Для редактирования формы в режиме Конструктора нужно выделить форму нажать кнопку Конструктор. На экране откроется окно Конструктора форм (рис. 11.19), в котором пользователь может ее изменить: добавить элементы (например, надпись – заголовок формы).
Рис. 11.19. Форма, отрытая в режиме Конструктора
Область построения формы имеет горизонтальную и вертикальную сетку, предназначенную для выравнивания объектов формы. С помощью горизонтальной и вертикальной линеек можно точно устанавливать размер и местоположение объектов формы.
Форма может содержать разделы «Заголовок», «Область данных», «Примечания формы» и колонтитулы (верхний и нижний). Для добавления или удаления разделов формы используются команды меню Вид. Каждый раздел отделен горизонтальной линией, на которой написано его название.
Данные, размещаемые в заголовке, области данных и примечании отображаются в форме. Элементы, расположенные в области данных, отображаются для каждой записи таблицы.
Для изменения размера какого либо раздела нужно в режиме Конструктора формы установить указатель мыши на верхнюю часть его границы и переместить ее на новое место.
Панель элементов используется для размещения в форме объектов. Обычно панель элементов появляется в режиме Конструктора форм автоматически. Убрать или восстановить ее на экране можно командой Вид-Панель элементов. Ниже приведены наиболее используемые элементы формы и соответствующие им кнопки на Панели элементов.
| Надпись. Размещение в форме произвольного текста. |
| Поле. Размещение в форме данных из соответствующего поля базовой таблицы/запроса, вывод результатов вычислений, а также прием данных, вводимых пользователем. |
| Поле со списком. Размещение элемента управления, объединяющего поле и раскрывающийся список. |
| Список. Создание списка, допускающего прокрутку. Выбранное из списка значение можно ввести в новую запись или использовать для замены уже существующего значения. |
| Кнопка. Создание командной кнопки, позволяющей осуществлять некоторые действия (поиск записей, печать отчета, и т.п.). |
При размещении в форме полей из базовой таблицы/запроса удобно пользоваться списком полей, который можно вывести командой Вид|Список полей. Он представляет собой окно, содержащее перечень полей таблицы/запроса. Чтобы разместить какое-либо поле в форме, достаточно перетащить его из Списка полей в нужный раздел формы.
Все объекты формы характеризуются своими свойствами, которые можно настроить в соответствии с определенными требованиями.