Выбор данных из одной таблицы
Одним из преимуществ запросов является то, что они позволяют достаточно быстро отобрать необходимые данные из нескольких связанных таблиц. Но запросы полезны и при работе с одной таблицей. Все приемы, используемые при работе с единственной таблицей, годятся и для сложных многотабличных запросов, поэтому мы начнем с запросов на выборку данных одной таблицы.
На рис. 1.8 показан запрос в режиме конструктора. Окно конструктора запросов разделено на две части. В верхней находятся списки полей таблиц или запросов, на основе которых создается новый запрос. В нижней располагается бланк QBE (Query By Example – запрос по образцу), в котором выполняется вся работа по созданию запроса. Каждый столбец бланка представляет одно поле, используемое в запросе. Поле может просто принадлежать одной из таблиц, быть вычисляемым (иными словами, его значение рассчитывается на основе одного или нескольких полей таблицы) или итоговым, то есть использующим одну из встроенных функций Microsoft Access.
Рисунок 1.8. Запрос в режиме Конструктор
Первая строка бланка запроса служит для выбора полей, которые должны присутствовать в наборе записей, используется для сортировки данных или для выбора информации из таблицы. Полям запроса можно присвоить имена, которые будут отображаться в заголовках столбцов при выводе набора записей запроса, а для генерации вычисляемых полей можно использовать выражения любой степени сложности.
Если была выполнена команда Вид->Имена таблиц, во второй строке бланка запроса Access выведет имя таблицы, из которой выбрано поле. В третьей строке бланка можно задать сортировку по возрастанию или по убыванию.
Флажки в строке бланка Вывод на экран отвечают за вывод полей в наборе записей. По умолчанию выводятся все поля, включенные в бланк Запроса.
Для ввода условия отбора записей используется строка Условие отбора и строки или. На рис. 1.5 показан запрос на выборку фамилий тех студентов, которые имеют оценки от 4 до 5 баллов.
Включение полей в запрос
Первым шагом при создании запроса является выбор полей, включаемых в набор записей. Можно просто перетащить поле с помощью мыши в нужный столбец бланка из списка полей верхней части окна. При перетаскивании поля указатель мыши превращается в маленький прямоугольник.
Вычисляемые поля
С любыми полями таблицы можно выполнять вычисления и сделать вычисляемое выражение новым полем в наборе записей, при этом можно использовать любые из встроенных функций Access. Кроме того, поля запроса могут содержать данные, получаемые с помощью арифметических операций над полями таблицы. Например ЦенаТовара*Количество.
Вычисляемое поле может содержать вызовы встроенных функций Access и следующие операторы:
"+" – складывает два арифметических выражения;
"– " – вычитает из первого арифметического выражения второе;
"*" – перемножает два арифметических выражения;
"/" – делит первое арифметическое выражение на второе;
"\" – округляет два арифметических выражения до целых значений и делит первое на второе, результат округляется до целого;
"^" – возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением;
«MOD» – округляет оба арифметических выражения до целых значений, делит первое на второе и возвращает остаток;
«&» – создает текстовую строку как результат присоединения второй строки к концу первой. Если один из операндов является числом, то оно автоматически преобразуется в строку символов.
На рис. 1.9 показан пример вычисляемого поля для таблицы тАттестат. Вычисляемое поле Среднее выводит средний балл по трем предметам: Русский, Математика, Физика.
Рисунок 1.9. Вычисляемое поле
Итоговые запросы
Для вычисления итоговых значений надо нажать кнопку Групповые операции
чтобы в бланке QBE появилась строка Групповые операции.
Access предоставляет девять функций, обеспечивающих выполнение групповых операций. Вы можете задать нужную вам функцию, введя ее имя с клавиатуры в строке Групповая операция бланка запроса или выбрав ее в раскрывающемся списке.
Итоговые функции Access:
Sum – вычисляет сумму всех значений заданного поля в каждой группе.
Avg – вычисляет среднее арифметическое всех значений данного поля в каждой группе.
Min – возвращает наименьшее значение, найденное в этом поле внутри каждой группы.
Max – возвращает наибольшее значение, найденное в этом поле внутри каждой группы.
Count – возвращает число записей, в которых значения данного поля отличны от Null.
StDev – стандартное отклонение всех значений данного поля в каждой группе.
Var – вычисляет дисперсию значений данного поля в каждой группе.
First – возвращает первое значение этого поля в группе.
Last – возвращает последнее значение этого поля в группе.
На рис. 1.10 показан пример запроса с применением групповой операции Sum. Данный запрос является многотабличным и позволяет определить сумму выплат, сделанных каждым абитуриентом.
Рисунок 1.10. Окно запроса с применением групповой операции
Перекрестные запросы
Access поддерживает особый тип итоговых запросов, называемый перекрестными запросами. Они позволяют увидеть вычисляемые значения в виде перекрестной таблицы, напоминающей электронную (рис. 1.11).
Для построения перекрестного запроса выделите имя нужной таблицы в окне базе данных и выберите Новый запрос в раскрывающемся списке кнопки Новый объект
на панели инструментов. В окне диалога Новый запрос выберите Конструктор, а затем в окне конструктора выберите команду Запрос->Перекрестный. Access добавит в бланк запроса строку Перекрестная таблица. В этой строке для каждого поля перекрестного Запроса может быть выбрана одна из четырех установок: Заголовки строк, Заголовки столбцов, Значение (выводимое в ячейках перекрестной таблицы) и Не отображается. Для перекрестного запроса надо определить, по крайней мере, одно поле в качестве заголовков строк, одно для заголовков столбцов и одно поле значений. Каждое поле, являющееся заголовком столбцов, должно иметь в строке Групповая операция установку Группировка. Для поля, использующегося в качестве заголовков строк, в строке Групповая операция должна быть установлена операция Группировка, выбрана одна из итоговых функций (Count, Min, и т. д.) или введено выражение, содержащее итоговую функцию. Для поля с установкой Значение выбирается одна из итоговых функций или вводится выражение, использующее итоговую функцию.
Построить перекрестный запрос можно другим, более простым способом, с помощью мастера. Для этого в окне диалога Новый запрос надо выделить пункт Перекрестный запрос и нажать Ok. Затем мастер выведет на экран последовательно ряд окон, в которых запросит необходимые данные для построения перекрестного запроса. Пример результата выполнения перекрестного запроса показан на рис. 1.11.
Рисунок 1.11. Результаты перекрестного запроса
12.9. Построение и применение форм
Формы являются основным средством организации интерфейса пользователя в приложениях Microsoft Access.
Обзор форм
Рассмотрим основные виды форм, которые можно построить в Access.
Простые формы. В простой форме показывается только одна запись таблицы, причем все необходимые поля отображаются на одной странице.
Многостраничные формы. При необходимости вывести на экран записи, каждая из которых содержит большой объем информации, можно Создать многостраничную форму.
Ленточные формы. Существует еще один тип форм, удобный для просмотра списка записей с небольшим числом полей данных. Это ленточная форма. В отличие от простой формы, которая показывает только одну запись, в ленточной форме отформатированные записи выводятся на экран одна за другой, как в таблице.
Подчиненные формы. Подчиненные формы используются для представления данных, находящихся на стороне «многие» отношения «один – ко многим». Например, форма фАбитуриент показывает одного студента и несколько вузов, в которые студент поступает (рис. 1.12).
Рисунок 1.12. Окно Формы в обычном режиме
Конструктор форм
Чтобы начать создание формы, необходимо в окне базы данных выбрать таблицу или запрос, выполнить команду Вставка->Форма или выбрать Новая форма
в раскрывающемся списке кнопки Новый объект
на панели инструментов. Access откроет окно диалога Новая форма. В поле со списком, расположенном в нижней части диалога, Access выводит имя таблицы или запроса, выбранного в окне базы данных. При необходимости можно выбрать другую таблицу или запрос, раскрыв список этого поля, содержащий перечень всех таблиц и запросов в текущей базе данных.
Выберите Конструктор в этом окне диалога и нажмите кнопку Ok. Access откроет окно формы в режиме конструктора и выведет на экран несколько инструментов конструктора форм (рис. 1.13). В нашем примере окно формы находится на заднем плане, панель элементов располагается третьей в панели инструментов, список полей – в верхней части окна, окно свойств формы – в правом нижнем углу. В новой форме будет присутствовать только область данных (с серой сеткой). Для добавления в форму областей заголовка и примечания используется команда Вид-> Заголовок/примечание формы, для добавления колонтитулов – Вид-> Колонтитулы. Увеличить или уменьшить размер любой области можно, если установить указатель мыши на краю этой области и перетащить его. Удаление сетки выполняется командой Вид-> Сетка.
Рисунок 1.13. Создание формы в режиме Конструктор
Панель элементов
Панель элементов – это своеобразный «командный центр» создания формы. Её можно переместить, перетащив заголовок окна в нужное место на экране, или изменить её форму, перетащив края или углы панели (см. рис. 12.10).
Чтобы в режиме конструктора форм вывести на экран панель элементов, нужно выбрать команду Вид->Панель элементов или нажать кнопку Панель элементов
на панели инструментов.
Панель элементов содержит кнопки для всех элементов управления, которые можно использовать при создании формы. Для того чтобы поместить в форму конкретный элемент управления, нажмите соответствующую кнопку на панели элементов. После этого при перемещении указателя по форме он превращается в значок выбранного элемента управления. Поместите указатель там, где будет находиться левый верхний угол элемента управления, нажмите кнопку мыши и протащите указатель до места, где должен быть правый нижний угол элемента, а затем отпустите кнопку мыши. (Размер элемента управления можно изменить и после его размещения в форме, перетащив стороны или углы элемента в новое положение.)
Ниже перечислены кнопки панели элементов.
– кнопка Выбор объектов. По умолчанию эта кнопка нажата. Она используется для выделения, изменения размера, перемещения и редактирования элемента управления.
– кнопка Мастера элементов. Если кнопка нажата, то при создании группы, поля со списком, списка или командной кнопки активизируется мастер по созданию этих элементов управления.
– кнопка Надпись используется для создания элемента управления Надпись, содержащего постоянный текст.
– кнопка Поле используется для создания элемента управления Поле для отображения текста, чисел, дат, времени. Можно связать элемент управления Поле с одним из полей базовой таблицы или запроса. В этом случае при изменении значения элемента управления обновляется значение соответствующего поля в базовой таблице или запросе. Этот элемент управления применяется также для вычисления значений некоторых выражений.
– кнопка Группа используется для создания группы элементов управления, содержащей несколько выключателей, переключателей или флажков. Одновременно можно установить (выбрать) только один из включенных в группу элементов, и значение, назначенное ему, присваивается всей группе. Один из элементов группы может устанавливаться по умолчанию.
Кнопки
Выключатель,
Переключатель
и Флажок используются для создания элементов управления, принимающих значение Вкл/Выкл, Истина/Ложь или Да/Нет. Состоянию Вкл, Истина или Да соответствует число –1, а состоянию Выкл, Ложь или Нет соответствует 0. При выборе одного из Выключателей, Переключателей или Флажков (т. е. переводе его во включенное состояние) любой ранее нажатый элемент группы будет переведен в выключенное состояние.
– кнопка Поле со списком используется для создания элемента управления Поле со списком, который можно рассматривать как объединение двух элементов: поле и список. Для явного задания списка надо ввести список значений в строке свойства Источник записей. В качестве источника значений списка можно также использовать таблицу или запрос. Значение, выбранное в списке, отображается в поле.
– кнопка Список используется для создания элемента управления Список, содержащего перечень возможных значений.
– кнопка элемента Кнопка используется для создания элемента управления Командная кнопка, с помощью которой можно запустить макрос или процедуру VBA.
– кнопка Набор вкладок используется для создания формы, состоящей из нескольких вкладок. На вкладку можно скопировать или добавить другие элементы управления.
– кнопка Рисунок позволяет поместить в форму статический рисунок. Его нельзя будет редактировать в форме. (Свойство формы Рисунок позволяет использовать некоторое изображение в качестве подложки (фона) формы.)
– кнопка Свободная рамка объекта используется для включения в форму объекта из другого поддерживающего OLE приложения. Объект становится частью формы, но не хранится в базе данных. Чтобы сделать форму более наглядной и выразительной, можно включить в нее рисунки, звуковые эффекты, диаграммы или слайды.
– кнопка Присоединенная рамка объекта используется для включения в форму объекта OLE, хранящегося в базовой таблице. Access может отобразить большинство рисунков и диаграмм непосредственно в форме. Для других объектов Access выводит в форме значок приложения, в котором был создан объект.
– кнопка Конец страницы позволяет вставлять разрыв страницы в многостраничной форме.
– кнопка Подчиненная форма/отчет используется для включения в текущую форму некоторой другой формы.
– кнопка Линия используется для включения в форму прямых линий, помогающих сделать ее более выразительной.
– кнопка Прямоугольник используется для включения в форму прямоугольников и улучшения ее внешнего вида.
Сама форма, каждый ее раздел (заголовок, область данных, раздел примечаний) и элементы управления имеют свойства. Установить их значения можно с помощью окна свойств. Оно открывается с помощью кнопки Свойства
на панели инструментов или командой Вид – Свойства. Поскольку форма имеет более 70 свойств, а большинство элементов управления – более 30, то окно свойств содержит несколько вкладок.
1.10. Основные сведения об отчетах
Отчеты представляют собой наилучшее средство для представления информации из базы данных в виде печатного документа. По сравнению с другими средствами вывода данных на печать отчеты обладают двумя принципиальными преимуществами:
1. Предоставляют широкие возможности для группировки и вычисления промежуточных и общих итогов для больших наборов данных.
2. Могут быть использованы для получения красиво оформленных счетов, заказов на покупку, почтовых наклеек, материалов для презентаций и других документов.
Создание отчета
В окне диалога Новый отчет можно выбрать один из шести вариантов.
Конструктор. Используется для создания отчета «с нуля» или для редактирования ранее созданного отчета.
Мастер отчетов. Запускает основного мастера по разработке отчетов, позволяющего выбрать поля для отчета, задать форматы, условия группировки и итоговые функции.
Автоотчет: в столбец. Этот мастер создает отчет, в котором каждая запись базового запроса или таблицы представлена в виде простого списка, содержащего названия и значение полей.
Автоотчет: ленточный. В отчете этого типа записи базового запроса или таблицы выводятся в одной строке.
Диаграмма. Этот мастер помогает построить диаграмму и создает в отчете свободную рамку объекта OLE с внедренной диаграммой Microsoft Graph.
Почтовая наклейка. Этот мастер позволяет выбрать поля с именами и адресами, отформатировать их и создать отчет для печати почтовых наклеек.