
gLPWlXfs02
.pdfность записей) и называется Dynaset (динамический, временный набор данных). В эту таблицу включены выбранные из основной таблицы блоки данных, которые удовлетворяют критерию запроса. Dynaset – динамический набор данных, т. е. при каждом выполнении запроса он строится вновь на основе «свежих» табличных данных.
4.2. Процедуры проектирования запросов
Выделяют два типа запросов: QBE-запросы (QBE – Query By Example – запросы по образцу), которые пользователь формирует, задавая отдельные параметры в окне проектирования с использованием подсказок (образцов), и SQL-запросы (SQL – Structured Query Language – структурированный язык запросов), формулируя которые пользователь применяет инструкции и функции, выстраивая некоторое описание на языке SQL. Между QBE- и SQL- запросами существует однозначное соответствие, и Access позволяет выполнять трансляцию запроса из одной формы в другую и обратно.
4.2.1. Проектирование QBE-запросов
QBE-запросы называются также запросами выбора. Запрос выбора является стандартным типом запроса, и для его проектирования в окне банка данных сначала следует щелкнуть на пиктограмме запроса Query, а затем на кнопке New (Новый). Access индицирует пустой проект запроса, а также диалоговое окно Add Table (добавить таблицу). В этом окне следует выполнить двойной щелчок мышью на тех таблицах, на базе которых необходимо изготовить запрос. После того как все таблицы выбраны, диалоговое окно Add Table можно закрыть командной кнопкой Close.
Связывание таблиц в запросе. Если запрос строится на базе нескольких таблиц, то между этими таблицами нужно объявить отношение, связывая их поля друг с другом. Связь отображается на экране соединительной линией между связываемыми полями обеих таблиц. Если между таблицами уже существуют отношения, то соответствующие связи индицируются автоматически. Чтобы объявить связь между двумя таблицами прямо в окне проектирования запроса, следует отбуксировать поле одной таблицы в поле такого же типа другой таблицы.
Добавление и удаление полей. Добавить поля к запросу можно буксировкой полей из списка в верхней части окна проектирования в нижнюю часть, в область спецификации запроса QBE. Используемое запросом поле маркируется в
21
списке и буксируется в очередную колонку спецификации, в строку Field (Поле). Вместо буксировки можно выполнить двойной щелчок на имени поля. Поле можно выбрать и прямо в строке Field, развернув имеющийся здесь список.
Для удаления поля из области проектирования запроса следует маркировать колонку удаляемого поля, выполнив щелчок «мышью» над ней в селекторной строке. Затем нужно нажать клавишу [Del] или выбрать из Edit-меню директиву Delete Column (удалить колонку).
Ввод критериев отбора. Критерии отбора – это инструкции, посредством которых пользователь сообщает Access, какие блоки данных должны отбираться по запросу и индицироваться в Dynaset. Критерии могут задаваться для одного поля запроса или нескольких полей. Для задания критерия в режиме проектирования запроса следует щелкнуть «мышью» в строке Criteria (Критерии) и ввести выражение для критерия отбора значений соответствующего поля.
Сортировка блоков данных в запросе. Блоки данных в запросе (точнее, в
генерируемом при выполнении запроса наборе Dynaset) могут быть рассортированы алфавитным или числовым способом в возрастающей (А-Я, 0-9 или убывающей Я-А, 9-0) последовательности по содержимому отдельных полей. Выполнять сортировки можно одновременно по содержимому нескольких полей (до десяти). Для выполнения сортировки следует в окне проектирования щелкнуть «мышью» в строке спецификации Sort того столбца (поля), по которому необходимо выполнить сортировку. В этой ячейке нужно указать способ сортировки Ascending (по возрастанию) или Descending (по убыванию), который можно выбрать из списка. Этот список содержит и значение Not sorted (не сортировано), позволяющее отказаться от сортировки по содержимому данного поля.
Подавление индикации полей в запросе. В спецификации запроса можно подавить поле, если его индикация в Dynaset не нужна. Причем подавить можно и поле, по содержимому которого производится сортировка. Поле будет видимо в таблице Dynaset, если в соответствующей колонке спецификации запроса в строке Show (показать) стоит отметка (контрольный индикатор включен). Для подавления индикации достаточно щелкнуть на этом индикаторе и отметка исчезнет.
Проведение вычислений. Пользователь может применить запрос для проведения вычислений с блоками данных. Можно задать в каждом поле некоторую функцию, обрабатывающую содержимое этого поля. Результат обра-
22
ботки выдается в Dynaset. Функция обработки задается в строке Total, которая появляется после нажатия в пиктографическом меню кнопки с греческой литерой G (сигма). Тип функции можно выбрать в этой строке, развернув список возможных значений: Sum – суммируется содержимое данного поля в столбце; Avg – вычисляется среднее значение поля в столбце; Min – минимальное значение поля в столбце; Max – максимальное значение поля в столбце; Count – число значений поля в столбце; First – первое значение поля в столбце; Last – последнее значение поля в столбце; StDev – стандартное отклонение значений в столбце; Var – вариация значений.
Индикация результата запроса (Dynaset). После того как запрос спроек-
тирован, его можно выполнить, щелкнув «мышью» в строке пиктограмм на кнопке с восклицательным знаком или вызывая в меню Query директиву Run (выполнить). Access индицирует отобранные по запросу в Dynaset блоки в виде таблицы.
4.2.2.Проектирование SQL-запросов
Спомощью структурированного языка запросов SQL в рамках Access пользователь может сформулировать сколь угодно сложные по структуре критериев и вычислений запросы. Этот же язык позволяет управлять обработкой запросов. SQL-запрос представляет собой последовательность инструкций, в которую могут включаться выражения и вызовы функций. Когда в режиме проектирования пользователь создает спецификацию запроса в форме QBE, Access строит на его основе соответствующий SQL-запрос. Для того чтобы отобразить на экране этот SQL-запрос или внести в него исправления, в режиме проектирования следует выбрать директиву SQL из меню View.
4.2.3. Типы запросов
Наряду с запросами выбора с помощью Access можно реализовать также запросы действий, параметрические запросы и запросы создания кросс-таблиц.
Запросы действия. С помощью запроса действия пользователь может изменять или переносить данные таблицы, а также актуализировать, добавлять или удалять группы блоков данных, изготавливать новые таблицы из набора Dynaset. Различают четыре типа запросов действий: запрос добавления, запрос удаления, запрос актуализации и запрос создания таблицы. В окне банка данных Access устанавливает перед именем запроса действия восклицательный знак (!).
23
Запросы добавления. С помощью запроса добавления блоки данных одной таблицы (все или отобранные запросом) можно присоединить в конец другой таблицы, которая может находиться как в том же банке данных, так и
вдругом. Если необходимо добавить блоки данных к таблице другого банка, сначала следует присоединить таблицу-источник к банку, содержащему целевую таблицу, с помощью директивы Attach Table (присоединить таблицу) меню File. Чтобы выбрать добавляемые блоки данных, следует составить запрос выбора. Затем надлежит выполнить составленный запрос и оценить результат в Dynaset, переключившись в табличный режим с помощью опции Datasheet (таблица) меню View. После того как необходимые данные отобраны в Dynaset, следует вернуться назад в режим проектирования и вызвать директиву Append (добавить) из меню Query.
Запрос удаления. С помощью запроса удаления пользователь может удалить группу блоков данных, отобранных по определенным критериям. При этом следует проявить осмотрительность и тщательно проанализировать критерии отбора, поскольку эту операцию отменить нельзя.
Для удаления записей из таблицы сначала следует спроектировать запрос выбора, чтобы выбрать удаляемые блоки данных. Отбор блоков данных выполняется в соответствии с заданными в строке Criteria критериями. По завершении задания критериев отбора следует выполнить запрос выбора, чтобы оценить корректность сформулированных условий. Затем следует вернуться назад в режим проектирования.
ВQuery-меню выбирается директива Delete (удалить). Access добавляет
вспецификацию запроса строку Delete и вводит в ячейки в столбцах полей значение Where. Это означает, что пользователь может установить дополнительные критерии отбора. Далее следует выполнить запрос, нажав кнопку с восклицательным знаком в строке пиктограмм. В специальном диалоговом окне Access укажет, сколько записей удаляется из таблицы и запросит подтверждение OK для выполнения удаления.
Запрос создания таблицы. Из динамического набора Dynaset, сформированного при выполнении запроса, можно изготовить таблицу, используя запрос создания таблицы. Применять запросы создания таблиц следует, например, для архивирования старых блоков данных или сохранения резервных копий таблиц.
Сначала следует изготовить запрос выбора и получить динамический набор данных Dynaset, заодно проверив при этом корректность запроса. Если
24
Dynaset соответствует представлениям пользователя, следует вернуться назад в режим проектирования и в Query-меню выбрать директиву Make Table (создать таблицу). Access открывает диалоговое окно Query Properties (Характеристики запроса), в которое следует ввести имя новой таблицы и нажать OK. Далее следует выполнить запрос, нажав кнопку с восклицательным знаком в строке пиктограмм. В специальном диалоговом окне Access укажет, сколько записей вносится в новую таблицу и запросит подтверждение OK для выполнения этой операции.
4.3.Порядок выполнения работы
Впроцессе выполнения работы требуется разработать ряд запросов для выборки данных, отвечающих определенным условиям, из базы данных Dekanat. Для этого поступите следующим образом.
1. Войдите в среду Windows и вызовите СУБД Access. Откройте в рабочем каталоге базу Dekanat.
2. Вызовите Мастер запросов с помощью команд меню:
Создание → Мастер запросов → Простой запрос.
На базе таблицы Студенты создайте запрос Выбрать_студент в форме
QBE для выборки информации о конкретном студенте. В качестве критерия выборки укажите равенство поля Фамилия требуемому значению. Выполните запрос поочередно для всех членов бригады.
3.Спроектируйте запрос выборки Выбрать_преподаватель на базе таблиц: Преподаватели, Дисциплины. При проектировании запроса используйте связь между таблицами, установленную в схеме базы данных Dekanat. Выполните запрос для получения информации о конкретном преподавателе.
4.Спроектируйте запрос выборки Выбрать_дисциплина с использованием таблиц Дисциплины и Преподаватели. При проектировании запроса установите связь таблиц с помощью полей Вн_код_преподавателя и Код_преподавателя. Выполните запрос для получения информации о конкретной дисциплине.
5.На базе таблиц Студенты, Экзамены, Дисциплины и Преподаватели
спроектируйте запрос создания таблицы Создать_зачетка для конкретного студента. Для этого сначала изготовьте запрос выборки Выбрать_зачетка,
связав таблицы Экзамены, Студенты, Дисциплины, Преподаватели и указав в качестве критерия выборки фамилию студента. Выполните запрос и проверьте правильность его выполнения. На основе полученного запроса с по-
25
мощью Конструктора запросов спроектируйте запрос создания таблицы и присвойте новой таблице имя Зачетка_Фамилия1. Выполните запрос и проверьте правильность заполнения новой таблицы. Повторите выполнение запроса для всех N членов бригады, создав таблицы Зачетка_Фамилия2, ... ,
Зачетка_ФамилияN.
6.Спроектируйте запрос обновления Пересдать_удовлетворительно для вновь созданной таблицы Зачетка_ФамилияN. В качестве критерия обновления укажите равенство поля Оценка значению 3, а в качестве новой оценки значение 4 или 5. Выполните запрос для члена бригады, имеющего удовлетворительные оценки, и проверьте правильность его выполнения.
7.Спроектируйте запрос удаления Удалить_удовлетворительно для вновь созданной таблицы Зачетка_ФамилияN. В качестве критерия удаления укажите равенство поля Оценка значению 3. Выполните запрос для члена бригады, имеющего удовлетворительные оценки, и проверьте правильность его выполнения.
8.Для всех спроектированных запросов получите текстовое описание на языке SQL. Для этого откройте запрос в режиме проектирования и выполните его трансляцию в форму SQL. Зафиксируйте полученный текст запроса и сохраните его в виде файла.
Содержание отчета:
1.Описание всех полученных запросов в форме QBE.
2.Описание всех полученных запросов в форме SQL.
4.Результаты выполнения запросов выборки.
5.Результаты выполнения запросов создания таблицы.
6.Результаты выполнения запросов удаления.
7.Описание структуры данных таблицы Зачетка_ФамилияN, полученной в результате выполнения запроса.
6.Выводы по работе.
Лабораторная работа 5. ПРОЕКТИРОВАНИЕ ОТЧЕТОВ В СРЕДЕ MS ACCESS
Цель работы – проектирование отчетов для представления в форме документов информации из базы данных, созданной в среде универсальной СУБД Microsoft Access.
26
5.1.Основные положения
Вотчете пользователь может наглядно расположить информацию, извлеченную им из банка данных в процессе анализа. В части оформления отчета система Access предоставляет пользователю разнообразные средства. Имеется возможность выбирать элементы информации, включаемые из банка
вотчет; элементы управления, позволяющие автоматизировать выполнение последующих операций; элементы оформления, превращающие его в законченный образец высококачественного документа. В Access предусмотрена стандартная структура отчета, предполагающая содержание в нем основной части и колонтитулов. Примерами отчета могут служить распечатанный телефонный справочник, отчет о торговых операциях фирмы за квартал, список сотрудников отдела и др.
5.2.Процедуры проектирования отчетов
Пользователю доступны два способа проектирования отчета. Можно воспользоваться поддержкой Конструктора Отчетов, а можно спроектировать отчет и самостоятельно, «вручную». Если пользователь уже имеет некоторые навыки работы с Access-отчетами, то второй способ позволяет достичь результата быстрее. Начинающим пользователям помощь Конструктора отчетов даст возможность избежать ошибок.
5.2.1. Изготовление отчетов с помощью Конструктора отчетов
Конструктора отчетов берет на себя управление процессом проектирования отчета. Он ставит перед пользователем вопросы, касающиеся структуры, содержания и оформления отчета, ограничивая возможность непродуманных, некорректных действий. На каждый из задаваемых вопросов сам же Конструктор отчетов предлагает пользователю несколько вариантов ответов, сводя роль пользователя к простому выбору одного из возможных решений. Конструктор отчетов позволяет подготовить следующие типы отчетов:
–отчет, содержащий информацию, расположенную в одну колонку;
–отчет с группированием и вычислением итоговых величин;
–адресные этикетки.
Для обращения к Конструктору отчетов за помощью в деле проектирования отчета сначала в окне банка данных следует выбрать пиктограмму отчета Report и затем щелкнуть «мышью» на кнопке New (новый).
27
В появляющемся после этого диалоговом окне New Report (Новый отчет) вводится имя исходной таблицы или запроса, из которых будет извлекаться информация для построения отчета. Далее следует щелкнуть «мышью» на кнопке Report Wizards (конструктор отчетов), после чего он начинает работать. Он опрашивает пользователя при помощи последовательно возникающих на экране диалоговых окон, выясняя детали содержания и оформления проектируемого отчета. По мере получения ответов пользователя Конструктор отчетов создает прототип отчета. В последнем диалоговом окне пользователь может решить, в каком режиме он хочет видеть результат: в режиме Preview или в режиме проектирования.
Если результат не полностью отвечает представлениям пользователя, то можно самостоятельно доработать отчет в режиме проектирования либо снова вызвать Конструктор Отчетов и изготовить новый отчет. Более того, по ходу проектирования пользователь может вернуться на несколько шагов назад и изменить одно из принятых им решений.
5.2.2. Создание отчета без Конструктора отчетов
Если пользователь захочет самостоятельно спроектировать отчет, он должен изготовить пустой отчет, добавить необходимые указания в отношении сортировки и группировки и затем ввести в него управляющие элементы и другие необходимые для оформления отчета компоненты.
Для самостоятельного проектирования отчета в окне банка данных вначале выполните щелчок на пиктограмме отчета Report, а затем на кнопке New (новый). Появляется диалоговое окно New Report (новый отчет). В нем следует указать имя таблицы или имя запроса, на которых должен базироваться отчет. Далее следует нажать кнопку Blank Report (пустой отчет). Появляется пустой отчет (прототип отчета) в режиме проектирования. Окно проектирования разделено на несколько областей в соответствии со стандартной структурой отчета, в которые по необходимости можно ввести управляющие элементы, уровни группировки и другие элементы проекта.
5.2.3.Встраивание управляющих элементов
Впрототип отчета в процессе проектирования можно встроить управляющие элементы. Управляющие элементы, встроенные в прототип отчета, могут использоваться для оформления заголовков, надписей и иллюстраций.
Чтобы встроить управляющие элементы в отчет, на экран нужно вывести инструментальное меню Toolbox (опция View/Toolbox), в котором выби-
28
рается кнопка создаваемого управляющего элемента. После этого следует выполнить «мышью» щелчок в той позиции прототипа отчета, где надлежит разместить данный управляющий элемент. Access размещает выбранный элемент, приписывая ему по умолчанию стандартные значения характеристик (размер, цвет и т. п.).
Для изменения стандартных значений характеристик управляющего элемента можно обратиться к окну характеристик, предварительно промаркировав настраиваемый элемент. Окно характеристик видно на экране при установленной опции View/Properties. Размер элемента и его местоположение можно изменить, перемещая с помощью «мыши» весь элемент или его размерные манипуляторы.
5.2.4. Связывание управляющего элемента с полем
Зависимый управляющий элемент в отчете связан с полем в соответствующей таблице или запросе. С помощью зависимого (связанного) управляющего элемента можно ввести данные в поле или индицировать и актуализировать их в отчете.
Если пользователь хочет, чтобы Access автоматически создала управляющий элемент, связанный с базовой для данного отчета таблицей, следует воспользоваться списком полей таблицы. Он виден на экране, если установлена опция Vlew/Field List. Управляющий элемент, изготовленный с помощью списка полей, имеет те же значения характеристик, что и поле таблицы, с которой он связан. Для выполнения свызывания следует отбуксировать выбранное поле или поля из списка в отчет. Там надлежит поместить курсор «мыши» в позицию, где должен находиться левый верхний угол управляющего элемента, и затем отпустить кнопку «мыши». Access создает для каждого поля, выбранного в списке, связанный управляющий элемент (текстовое поле).
5.2.5. Создание вычисляемых управляющих элементов
Вычисляемый управляющий элемент в отчете индицирует значение, которое было рассчитано с помощью данных из одного или нескольких полей базовой таблицы или из других управляющих элементов. Вычисляемое значение определяется в соответствии с выражением, указанным в характеристике ControlSource при определении управляющего элемента.
Вычисляемым элементом можно сделать любой управляющий элемент. Обычно речь идет о текстовом поле. Для превращения обычного управляющего элемента в вычисляемый следует маркировать его, щелкнув на нем
29
«мышью». Повторный щелчок «мышью» на маркированном управляющем элементе приводит к преобразованию указателя «мыши» в курсор ввода. Теперь можно вводить подлежащее вычислению выражение, например:
= Количество * Цена ,
чтобы получить произведение содержимого полей Количество и Цена для каждого блока данных. Ввод выражения завершается нажатием клавиши Enter, после чего оно появляется в качестве значения характеристики ControlSource в окне характеристик.
С помощью вычисляемого управляющего элемента можно выполнить расчет для одного блока данных, для группы блоков данных и для всех блоков данных в одном отчете.
Для вычисления по группе блоков данных следует добавить вычисляемое текстовое поле в шапку группы или в подстрочник группы. Для вычисления функции применительно ко всем блокам данных текстовое поле должно стоять в шапке отчета или в подстрочнике отчета.
Вычисления для группы или для всех блоков данных предполагают использование в выражении, связанном с вычисляемым элементом, функций, выполняющих обработку ряда записей. Речь может идти о функциях суммирования, определения среднего, минимального, максимального значений и т. п. Продолжая предыдущий пример, можно предложить следующее выражение:
= Sum ( Количество * Цена )
для вычисления полной стоимости всех проданных товаров.
5.2.6. Сортировка и группировка данных в отчете
Проектируемый отчет будет выглядеть гораздо представительнее, если данные в нем будут сгруппированы по категориям и в пределах категорий рассортированы. Access дает пользователю возможность разделить блоки данных на группы и рассортировать их в этих группах. Например, можно сгруппировать список продуктов по категориям и рассортировать блоки данных внутри каждой группы по наименованию продукта.
Для обращения к средствам сортировки данных в рамках отчета следует в режиме проектирования вызвать директиву Sorting and Grouping (сортировка и группировка) из меню View.
5.3.Порядок выполнения работы
Впроцессе выполнения работы требуется разработать ряд отчетов для отображения в виде документов информации из базы данных Dekanat.
1. Войдите в среду Windows и вызовите СУБД Access. Откройте в рабочем каталоге базу Dekanat.
30