Для отбора обновляемых записей надо включить в бланк запроса поля, требующие обновления, а также поля, по которым задаются условия отбора записей. Условия отбора задаются так же, как это делается при создании запроса на выборку.
Для обновляемого поля в строку Обновление (Update To) надо ввести значение или выражение, определяющее новое значение поля. Выражение можно создать с помощью построителя выражений.
После выполнения команды Запрос|3апуск (Query|Run) или нажатия соответствующей кнопки панели инструментов открывается диалоговое окно с сообщением о числе обновляемых записей и вопросом о продолжении операции обновления.
Переключившись в режим таблицы после выполнения запроса, можно просмотреть содержимое только обновленных полей. Переключение выполняется командой Вид|Режим таблицы (View|Datasheet View) или нажатием кнопки Вид (View) панели инструментов. Если переключиться в режим таблицы до выполнения запроса, можно просмотреть старое содержимое обновляемых полей.
Замечание
Если в схеме данных БД установлен параметр Обеспечение целостности данных (Enforce Referential Integrity) и Каскадное обновление связанных полей (Cascade Update Related Fields), то при обновлении ключевых полей результат зависит от взаимосвязей обновляемой таблицы с другими таблицами.
6.17.2. Запрос на добавление
С помощью запроса на добавление (Append Query) производится добавление записей из таблицы результата запроса в таблицу базы данных. Поэтому надо, чтобы в запросе были сформированы записи с полями, соответствующими полям в дополняемой записями таблице базы данных.
Структура записи таблицы запроса может не полностью совпадать со структурой записи таблицы, в которую добавляются записи. В записи запроса может быть меньше полей, если на поля в таблице, куда добавляются записи, не наложено требование по обязательности их заполнения. Допускается несоответствие типов полей, если возможно преобразование типа данных одного поля в тип данных другого поля.
Первоначально запрос на добавление (Append Query) создается как запрос на выборку (Select Query) на одной или нескольких взаимосвязанных таблицах.
Затем в окне конструктора запросов он превращается в запрос на добавление выбором типа запроса Добавление (Append Query) на панели инструментов или команды меню Запрос|Добавление (Query | Append Query). При этом открывается диалоговое окно Добавление (Append).
В этом окне в поле Имя таблицы (Table Name) вводится или выбирается имя таблицы, в которую надо добавить записи.
Если таблица-приемник добавляемых записей находится в открытой базе данных, надо отметить переключатель В текущей базе данных (Current Database). Для таблицы, находящейся в другой базе данных, надо отметить переключатель В другой базе данных (Another Database) и ввести имя файла БД. При необходимости укажите путь. Можно также указать базу данных Microsoft FoxPro, Paradox, dBASE или ввести строку подключения для базы данных SQL.
После преобразования запроса в запрос на добавление в его бланке появляется строка Добавление (Append To).
Для формирования добавляемых записей надо включить в бланк запроса поля, соответствующие определенным полям таблицы, в которую будет производиться добавление. Кроме того, в бланк запроса могут быть включены поля, по которым задаются условия отбора. Условия отбора вносятся в ячейки строки Условие отбора (Criteria). Если в таблице, куда добавляются записи, есть ключ, ключевые поля должны быть обязательно включены в бланк запроса.
Для указания в строке Добавление (Append To) имен полей таблицы-получателя, в которые будут добавляться значения из соответствующих полей таблицы запроса, надо в каждой ячейке открыть список полей и выбрать нужное имя.
Заметим, если выбранные поля имеют одни и те же имена в обеих таблицах, имена в строку Добавление (Append To) вносятся автоматически.
Для предварительного просмотра записей, которые планируется добавить в таблицу, надо нажать кнопку Вид (View) на панели инструментов. Возврат в режим конструктора запросов производится по этой же кнопке.
Для добавления записей надо нажать кнопку Запуск (Run) на панели инструментов. Открывается диалоговое окно с сообщением о числе обновляемых записей и вопросом о продолжении операции обновления.
Если таблица, в которую добавляются записи, содержит ключевое поле, добавляемые записи должны содержать такое же поле. Те записи, добавление которых приведет к появлению совпадающих или пустых значений в ключевом поле, не будут добавлены. Записи не добавляются также в случае, если невозможно преобразование типа данных в добавляемых полях или не выполняются условия на значения.
Заметим, если в схеме данных БД установлен параметр Обеспечение целостности данных (Enforce Referential Integrity), то добавление подчиненных записей возможно только в том случае, когда в главных таблицах уже имеются связанные записи.
6.17.3. Запрос на удаление
Запрос на удаление (Delete Query) позволяет удалить записи из одной таблицы или из нескольких взаимосвязанных таблиц. В запросе указываются таблицы, из которых должны удаляться записи, и задаются условия отбора удаляемых записей.
Первоначально запрос на удаление (Delete Query) создается как запрос на выборку (Select Query), в схему данных которого включаются взаимосвязанные таблицы, из которых требуется удалить записи и для полей которых задаются,, условия отбора. Затем запрос в режиме конструктора преобразуется в запрос, на удаление (Delete Query) выбором типа запроса Удаление (Delete Query) на панели инструментов или команды меню Запрос|Удаление (Query|Delete Query).
После преобразования запроса в запрос на удаление в его бланке появляется строка Удаление (Delete).
Затем формируется бланк запроса. Для задания таблицы, записи которой требуется удалить, надо с помощью мыши переместить символ звездочки (*) из списка полей соответствующей таблицы в бланк запроса. В строке Удаление (Delete) в столбце этого поля появляется значение Из (From). Для того чтобы задать условия отбора удаляемых записей, надо переместить с помощью мыши в бланк запроса поля, для которых устанавливаются условия отбора. В строке Удаление (Delete) под именами этих полей появляется значение Условие (Where). Строку Условие отбора (Criteria) для этих полей надо заполнить необходимыми условиями.
Для предварительного просмотра удаляемых записей можно нажать кнопку Вид (View) панели инструментов. Для возврата в режим конструктора запроса также используется эта кнопка.
Для удаления записей нажимается кнопка Запуск (Run) на панели инструментов.
Результаты работы запроса на удаление зависят от установленных в схеме базы данных отношений между таблицами и параметров целостности.
Если задан параметр Обеспечение целостности данных (Enforce Referential Integrity) и установлен параметр Каскадное удаление связанных записей (Cascade Delete Related Records), то для удаления записей групп и связанных с ними записей студентов достаточно указать в запросе удаление записей главной таблицы «Кафедра». Если параметр каскадного удаления не задан, то удаление записей таблицы «Кафедра» возможно, только если в подчиненной таблице нет связанных записей.
Напомним, что подчиненные записи самого нижнего уровня могут быть удалены независимо от параметров целостности. Если параметры целостности не установлены вообще, то записи удаляются только в указанных в бланке запроса таблицах и вне зависимости от их логических связей.
Задание 5.
Создать запрос на удаление всех записей из базы данных «Абитуриент», содержащих информацию об абитуриентах, забравших документы. Такая категория имеет одиннадцатую группу (поле Gr имеет значение «11»).
6.18. Мастера создания запросов
Простейшие запросы некоторых видов могут быть созданы с помощью мастеров Access. С помощью мастера можно создать:
q Простой запрос на выборку.
q Перекрестный запрос.
q Запрос для поиска повторяющихся записей (записей с повторяющимися значениями в полях).
q Запрос для поиска записей, не имеющих подчиненных.
Мастер запросов ускоряет процесс создания запроса, автоматически выполняя первоначальные простейшие действия по подготовке запроса. Вызванный мастер запрашивает у пользователя сведения и создает запрос на основе его ответов. При необходимости можно в режиме конструктора отредактировать запрос.
Создание запроса с помощью мастера начинается с выбора в окне базы данных объекта Запросы (Queries) и нажатия кнопки Создать (New). В окне диалога Новый запрос (New Query) надо выбрать один из предлагаемых видов запроса: Простой (Simple Query Wizard), Перекрестный запрос (Crosstab Query Wizard), Повторяющиеся записи (Find Duplicates Query Wizard), Записи без подчиненных (Find Unmatched Query Wizard).
Далее следует выполнять инструкции, выводимые в окнах диалога мастера. В последнем окне диалога предлагается выбрать запуск запроса или просмотр структуры запроса в режиме конструктора.
Заметим, что запрос для поиска повторяющихся записей и запрос для поиска записей, не имеющих подчиненных, являются элементарными запросами на выборку.
6.19. Мастера запросов на выборку
6.19.1. Простой запрос
При создании простого запроса на выборку мастер предоставляет возможность выбрать поля из взаимосвязанных таблиц и запросов. Причем в подготовленном бланке запроса не формируются условия отбора и вычисляемые поля. Единственное, что может сделать мастер, — это подготовить итоговый запрос, сгруппировав записи и подсчитав для этих групп сумму, среднее значение, минимум, максимум, число записей в группе.
Перейти к созданию простого запроса мастером можно, выбрав опцию Создание запроса с помощью мастера (Create query by using wizard) в списке запросов базы данных.
6.19.2. Запрос для поиска повторяющихся записей
Мастер создания запроса для поиска повторяющихся записей строит запрос, который определяет, содержит ли таблица повторяющиеся значения в одном или нескольких полях. Мастер позволяет выбрать анализируемую таблицу, задать поля, в которых следует проверить повторяемость значений, отобрать поля, которые надо вывести наряду с повторяющимися. Запрос выводит только те записи, для которых есть хотя бы еще одна запись в таблице с одинаковыми значениями в выбранных полях. Записи выводятся в порядке возрастания значений в полях с повторяющимися значениями.
6.19.3. Запрос для поиска записей, не имеющих подчиненных
Мастер создания запроса для поиска записей, не имеющих подчиненных, позволяет найти в таблице записи, у которых нет связанных записей в подчиненной таблице.
6.19.4. Мастер перекрестных запросов
В перекрестном запросе мастер формирует таблицу, в которой левый столбец образует заголовки строк из значений одного поля, верхняя строка образует заголовки столбцов из значений другого поля, а на пересечении строк и столбцов размещаются итоговые значения, вычисленные по значениям третьего поля. Для получения итоговых значений записи группируются по полям, используемым в качестве заголовков строк и столбцов, а для значений третьего поля в полученных группах записей применяется одна из выбранных статистических функций. Можно предусмотреть выполнение статистической функции и получение общего итогового значения для каждой строки в целом.
Замечание
Нет необходимости предварительно выполнять запрос на основе которого выполняется другой запрос. Выполнение вложенного запроса инициируется системой при выполнении запроса, построенного на нем.
Зачетное задание.
Отобразить в запросе (база данных «Литература») книги технического направления.
7. Лабораторная работа №7. Создание отчетов в среде Access
7.1. Цель работы
Выработка навыков разработки отчетов в пользовательском режиме СУБД Ms Access.
7.2. Программное обеспечение
1. Для проведения лабораторной работы требуется Ms Access 97/2000. Рекомендуется Ms Access 2000.
2. Необходима установка драйвера любого принтера.
7.3. Создание отчетов
Средства разработки отчетов в Access предназначены для конструирования макета отчета, по которому может быть осуществлен вывод данных в виде выходного печатного документа. Эти средства позволяют создавать отчет сложной структуры, обеспечивающий вывод взаимосвязанных данных из многих таблиц, их группировку, вычисление данных. При этом могут быть выполнены самые высокие требования к оформлению документа.
Перед началом конструирования отчета пользователь должен спроектировать его макет. При этом определяется состав и содержание разделов отчета, размещение в нем значений, выводимых из полей таблиц базы данных, и вычисляемых реквизитов, определяются поля, по которым нужно группировать данные. Для каждого уровня группировки определяются заголовки и примечания, вычисляемые итоговые значения. Кроме того, оформляются заголовки и подписи реквизитов отчета. Определяется также порядок вывода данных в отчете.
Отчет может создаваться с помощью мастера или в режиме конструктора отчетов. Во многих случаях удобно использовать мастера отчетов. Созданный мастером отчет можно доработать в режиме конструктора.
При необходимости вывода в отчете результатов решения задачи в качестве основы для отчета может быть использован многотабличный запрос. На запрос могут быть возложены наиболее сложные виды выборки и предварительной обработки данных. Разнообразные возможности конструктора отчетов позволяют легко структурировать и оформить полученные в запросе данные.
7.4. Конструирование отчетов
Режим конструктора отчетов во многом похож на режим конструктора форм. Панель инструментов, которая активно используется при конструировании отчета, аналогична панели, используемой при разработке форм.
7.4.1.Окно конструктора отчета
7.4.1.1. Разделы отчета
Создание и изменение макета отчета осуществляется в окне конструктора отчетов. При создании отчета в режиме конструктора в окне первоначально отображаются пустые разделы отчета.
Наличие этих разделов, а также их удаление или включение определяется командами меню Вид|Колонтитулы (View|Page Header/Footer) и Вид|3аголовок/примечание отчета (View|Report Header/Footer). Для этих же целей можно использовать соответствующие кнопки панели инструментов конструктора отчетов.
При создании отчета его разделы нужно заполнить элементами в соответствии с разработанным пользователем макетом отчета. В заголовок помещается текст из шапки макета отчета. В верхний и нижний колонтитул обычно помещают заголовки, номера страниц и даты. При определении содержания этих разделов следует исходить из требований к оформлению отдельных страниц отчета. В области данных размещаются поля таблиц базы данных или запросов.
При необходимости группировки записей по полю в окно конструктора отчетов могут быть добавлены разделы Заголовок группы (Report Header) и Примечание группы (Footer). В заголовке группы, как правило, размещаются поля, по которым производится группировка. В примечании группы могут быть размещены выражения для подведения итогов по группе. Допускается до 10 уровней группировки выводимых записей.
7.4.1.2. Элементы разделов отчета
В процессе конструирования с помощью команд меню или кнопок панели инструментов конструктора отчетов и панели элементов разделы отчета заполняются элементами в соответствии с планируемым макетом отчета.
Поля с неповторяющимися значениями размещают в Области данных (Detail), которой можно придать вид табличной части отчета. Поля с повторяющимися значениями, по которым производится группировка записей, целесообразно размещать в заголовке группы.
Элементами разделов отчета, кроме полей таблиц или запросов, на которых строится отчет, являются также тексты подписей, кнопки управления, внедряемые объекты, линии, прямоугольники и т. п. Для каждого из элементов имеются соответствующие кнопки на панели элементов. Назначение кнопок панели элементов было показано на рис. 4.8.
Для каждого элемента, а также раздела и отчета в целом могут быть уточнены свойства. Технология размещения элементов и определения их свойств практически такая же, как и в конструкторе форм.
7.4.1.3. Панель инструментов конструктора отчетов
В процессе конструирования отчета используются команды меню, панель инструментов Конструктор отчетов, а также панель элементов.
Панель инструментов конструктора отчетов появляется, когда осуществляется переход в режим конструирования отчета при первоначальном создании или при внесении изменений в макет отчета.
7.4.2.Создание отчета
7.4.2.1. Создание отчета в режиме конструктора
В окне базы данных выберем объект Отчеты (Reports) и нажмем кнопку; Создать (New). Далее в диалоговом окне Новый отчет (New Report) выберем таблицу СТУДЕНТ, которая будет источником данных для отчета. Для создания отчета в режиме конструктора выберем Конструктор (Design).
Если отсутствует раздел Заголовок отчета (Report Header), включим его с помощью кнопки Заголовок/примечание отчета (Report Header/Footer) панели конструктора отчетов.
7.4.2.2. Группировка и сортировка данных отчета
Для выполнения требований к группировке и сортировке данных, отображаемых в отчете, необходимо нажать кнопку Сортировка и группировка (Sorting and Grouping) на панели инструментов конструктора и задать необходимые параметры в открывшемся диалоговом окне.
Группировка по полю. Для группировки записей по какому-либо определенному признаку необходимо выбрать в окне Сортировка и группировка (Sorting and Grouping) из списка поле, по значениям которого нужно проводить группировку. Для этого в области Свойства группы в строках Заголовок группы и Примечание группы надо выбрать Да (Yes). Сортировка для поля устанавливается автоматически.
Сортировка по полю. Для вывода отсортированного списка данных из базы нужно выбрать Свойства группы этого поля в строках Заголовок группы и Примечание группы. По умолчанию установлены значения Нет (No).
7.4.2.3. Размещение полей из таблиц
Размещение поля группировки. Значение поля группировки должно быть представлено один раз в заголовке группы. Для этого нужно разместить поле в разделе Заголовок группы. Для этого нужно Нажать кнопку панели инструментов конструктора отчетов Список полей и перетащить поле в раздел заголовка. Для установки размеров рамки по размеру текста подписи нужно выполнить команду Формат|Размер|по размеру данных или соответствующую кнопку панели инструментов.
Формирование табличной части отчета. Для этого необходимо последовательно разместить поля в области данных, которая определяет содержимое строк табличной части. Поле размещается вместе с подписью, которую система берет из свойств полей таблицы. Подписи полей надо перенести в область заголовка путем вырезания и вставки. Если они не совпадают с названиями столбцов в проекте макета, их надо откорректировать. Подписи также можно создать заново, воспользовавшись кнопкой панели элементов Надпись.
7.4.2.4. Включение вычисляемого поля в отчет
Для включения расчетного реквизита нужно нажать кнопку Поле на панели элементов и разместить элемент Свободный в раздел Примечание группы. Затем, определить в свойствах этого элемента выражение для расчета среднего значения. Для этого запишем на вкладке Данные в строку Данные необходимую функцию. После возможно отредактировать подпись поля. Для этого нужно выделить подпись и вызвать ее свойства. В свойствах на вкладке Макет в строке Подпись записать требуемый текст. Такие действия, как изменение подписи или ввод выражения в поле можно выполнить, и не обращаясь к свойствам элементов.
7.4.2.5. Добавление текущей даты и номера страницы
Для добавления в отчет текущей даты имеется встроенная функция Now(). Для этого в заголовке отчета создается свободный элемент, нажатием кнопки Поле, и зададием в окне его свойств на вкладке Данные в строке Данные выражение =Now().
Для добавления номера страницы в нижний колонтитул нужно создать свободный элемент и заполнить в его свойствах на вкладке Данные строку Данные выражением =[Page].
Существуют и другие способы формирования поля даты и номера страницы.
Поле текущей даты и времени можно добавить в отчет, выполнив в режиме конструктора команду Вставка|Дата и время. Установка в диалоговом окне Дата и время флажков Формат даты и/или Формат времени позволяет вставить текущую дату и/или текущее время и выбрать нужный формат.
В отчет будет добавлено поле, в свойствах которого на вкладке Данные в строке Данные будет записано соответствующее выражение. Если в отчете имеется раздел заголовка, поле добавляется в этот раздел. В противном случае поле вносится в раздел данных. В качестве выражения записывается функция Format, которая формирует значение на основе заданных ей аргументов — функции Date(), возвращающей текущую системную дату, и формата, в котором должна выводиться дата.
Поле нумерации страниц можно добавить в отчет, выполнив в режиме конструктора команду Вставка|Номера страниц. В окне диалога Номера страниц выбираются параметры, определяющие формат, расположение и выравнивание номеров страниц. Для печати номера страницы на первой странице устанавливается флажок Отображать номер на первой странице.
Замечание
Выражение, определяющее вывод номеров страниц, записывается в свойствах поля на вкладке Данные (Data) в строке Данные (Control Source). Выражение может иметь вид:
="Страница"&[Page]
или:
="Страница"&[Page]&" из "&[Pages],
что соответствует выбору Страница N (Page N) или Страница N из М (Page N of M).
7.4.2.6. Завершение оформления отчета
Для окончательного оформления введем в раздел Заголовок отчета (Report Header) название отчета — "СПИСКИ СТУДЕНТОВ". Для этого воспользуемся кнопкой панели элементов Надпись (Label). Установим нужный шрифт надписи, с помощью кнопок панели форматирования.
Для вывода названия отчета на последующих страницах введем его также в Верхний колонтитул (Page Header). Для этого можно скопировать название из раздела Заголовок отчета (Report Header), вставить в раздел Верхний колонтитул (Page Header) и выбрать нужный шрифт. Далее надо указать в свойствах отчета на вкладке Макет (Format) в строке Верхний колонтитул (Page Header): "Без заголовка" (Not with Rpt Hdr). Свойства отчета могут быть вызваны при установке курсора на пересечении линеек.
Создадим линии в соответствии с макетом, воспользовавшись кнопкой панели элементов Линия (Line).
7.5. Просмотр и печать отчета
7.5.1.Просмотр отчета
Переход из режима конструктора отчетов в режим предварительного просмотра осуществим, нажав кнопку Предварительный просмотр. Для просмотра ранее созданного отчета нужно выбрать его в окне базы данных на вкладке Отчеты и нажать кнопку Просмотр. Отчет при просмотре отобразится на экране таким, каким он будет напечатан.
В режиме предварительного просмотра имеется своя панель инструментов.
Для просмотра нужных страниц отчета можно использовать стандартное поле номера страницы в нижнем левом углу окна отчета.
7.5.2.Печать отчета
Кнопка Печать (Print) панели инструментов режима предварительного просмотра позволяет вывести отчет на печать.
С помощью команды Файл|Параметры страницы можно выбрать принтер, задать формат бумаги, размер полей, расстояние между строками, ориентацию (книжная, альбомная) и т. д. Команда Файл|Печать позволяет выбрать для печати отдельные страницы отчета или выделенные записи, распечатать заданное число копий, вывести отчет в файл, который должен распечатываться в другое время.
Задание
Спроектировать отчеты для всех ранее созданных баз данных: «Работник», «Подразделение», «Кафедра», «Литература», «Студент». Отчет должен учитывать специфику отображаемой информации и быть представлен наиболее компактным способом.
8. Литература
1. , , Мальцев данных: Учебник для высших учебных заведений / Под ред. проф. . – СПб.: КОРОНА принт, 2000.
2. Дж. Введение в системы баз данных, 6-е изд.: Пер. с англ. К.; М.; СПб.: Издательский дом «Вильямс», 1999.
3. , MicrosoftÒ Access 2000. – СПб.: БХВ – Санкт-Петербург, 1999.
[1] В подчиненной таблице не отображается поле внешнего ключа.
[2] Дополнительный столбец, в котором стоит значок «+», автоматически отображается только в таблице, имеющей простой ключ, единственную подчиненную таблицу и определенную в схеме данных связь с этой подчиненной таблицей.
[3] Нет необходимости в сохранении выполненных в таблицах корректировок данных, т. к. корректировки сохраняются в таблице автоматически сразу после перехода к следующей записи таблицы.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |



