Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ACCESS.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.23 Mб
Скачать

Создание запросов

Запрос используется для выбора из базы данных интересую­щей пользователя информации. Результат запроса называется выборкой. Под выборкой понимается динамическая таблица с записями данных, которые удовлетворяют определенным ус­ловиям запроса. Динамическая таблица формируется всякий раз заново на основе реальных таблиц базы данных, а ее содержи­мое удовлетворяет условиям запроса.

Основные виды запросов:

♦ запрос на выборку;

♦ запрос на изменение.

Запрос на выборку позволяет выбрать информацию на осно­ве заданных условий отбора из одной или нескольких таблиц. К таким запросам относятся:

♦ групповые запросы;

♦ перекрестные запросы;

♦ параметрические запросы.

Групповые запросы используются тогда, когда необходимо выполнение групповых операций, например определение коли­чества занятых номеров в гостинице для каждого типа номеров. При создании группового запроса используется строка Группо­вая операция в режиме конструктора запросов (строка активи­зируется из меню Вид - Групповая операция).

Для выполнения групповых операций в Access имеется не­сколько функций, которые позволяют производить вычисления на основании значений полей. Можно выполнять групповые запросы для всех записей сразу или только для группы записей в одной или нескольких таблицах.

Чтобы выполнить вычисления, необходимо для каждого по­ля, включенного в запрос, выбрать соответствующую функцию из раскрывающегося списка в строке Групповая операция. Все

функции делятся на четыре категории:

группировка - эта категория состоит только из функции Группировка и используется для указания поля, которое будет применяться в качестве группирующего;

итоговые функции - эта категория состоит из девяти функций: Sum, Avg, Min, Max, Count, StDev, Var, First, Last. Каждая из этих функций выполняет вычисления над полем;

выражение - эта категория состоит из одной функции Вы­ражение, предназначенной для указания на создание поля, зна­чения которого будут вычисляться (например, в запросе можно создать поле, значения записей которого являются результатом каких-либо вычислительных действий над записями других по­лей, используемых в запросе);

условие - эта категория состоит из одной функции Условие и предназначена для указания поля, записи которого выбирают­ся на основании заданного условия отбора. При выполнении сложных вычислений и указания условия отбора в поле группи­ровки рассматриваются только те записи, для которых выпол­няются эти условия.

Перекрестные запросы - это специальный вид группового запроса, представляющего собой выборку данных, записанных в виде двухмерной матрицы, где в качестве заголовков строк и столбцов используются сгруппированные значения заданных полей или выражения.

Параметрические запросы - это вид запросов, при котором выбор информации из таблиц производится на основании зада­ния условий отбора записей (параметров). Например, при вы­полнении запроса о пользовании клиентом дополнительными услугами параметром будет являться регистрационный номер клиента. Вводимые параметры предварительно необходимо описать в окне, которое вызывается при выполнении пункта меню Запрос - Параметры (рис. 18).

Запрос на изменение - это запрос, который позволяет вы­полнять более сложные действия по сравнению с выборкой оп­ределенных групп записей. Этот запрос можно представить как запрос на выборку, который должен выполнять действия над выбранной группой записей.

Основными запросами на изменение являются:

запросы на создание таблицы - позволяют создать новую таблицу с помощью условия отбора записей из других таблиц;

Рис18

запросы на добавление - позволяют добавить отобранные записи из таблицы или запроса текущей базы данных в конец другой таблицы;

запросы на обновление - позволяют изменить в таблице груп­пу записей данных, удовлетворяющих определенным условиям;

запросы на удаление - позволяют удалить группу записей данных, удовлетворяющую заданным условиям.

Следует отметить, что в Access есть запросы, которые не мо­гут быть созданы в режиме конструктора запроса. Эти запросы формируются с помощью специального языка структурирован­ных запросов SQL (Structured Query Language).

SQL-запрос представляет собой последовательность команд, выражений и вызовов функций. Существует три типа запро­сов SQL:

запрос на объединение - объединяет поля (или столбцы) одной или нескольких таблиц или запросов в одно поле (или столбец) в результирующем наборе записей;

запрос к серверу - передает SQL-инструкции непосредст­венно в базу данных сервера;

управляющий запрос — создает или изменяет объекты базы данных, такие как таблицы Microsoft Access или Microsoft SQL Server.

Работа с такими запросами выходит за рамки данного пособия.

Запросы могут быть созданы как с использованием Мастера запросов, так и с помощью Конструктора запросов, окно кото­рого приведено на рис. 19.

Рис.19

Окно конструирования разделено на две части:

• область таблиц запроса;

• бланк запроса.

Область таблиц запроса - это место, где размещаются таб­лицы или запросы в форме списков полей и устанавливаются связи между ними.

Бланк запроса - предназначен для определения полей и ус­ловий, которые будут использованы для извлечения результи­рующего набора данных.

В каждом столбце бланка содержится информация об одном поле из таблицы или запроса в верхней части окна. Выбор полей осуществляется перетаскиванием их с помощью мыши из облас­ти таблиц запроса. Добавление столбца осуществляется с помо­щью пункта меню Вставка - Столбцы, а удаление - с помощью пункта меню Правка - Удалить столбцы. Ввод Условий от­бора и Выражений можно осуществлять, используя Построи­тель выражений. Запуск запроса для проверки выполнения мож­но проводить с помощью кнопки Запуск.

Задание 1

Создайте простой запрос, позволяющий вывести список клиентов, проживающих в гостинице, с их регистрационными номерами.

Для создания такого запроса удобно воспользоваться Масте­ром запросов. Мастер простых запросов позволяет только вы­делить поля, которые необходимо отобразить.

Порядок работы

1. Щелкните мышью вкладку Запросы.

2. Щелкните кнопку Создать. Появится диалоговое окно Но­вый запрос.

3. Выберите Простой запрос. Появится окно мастера созда­ния простых запросов.

4. Выберите таблицу Регистрация клиентов в спускающем­ся списке Таблицы/Запросы.

5. Выберите названия полей НомерРегистрКарточки и ФИОклиента в списке Доступные поля и переместите их в список Выбранные поля. Нажмите кнопку Далее.

6. Выберите вид запроса Подробный. Нажмите кнопку Далее.

7. В поле ввода текста Задайте имя запроса введите заголо­вок запроса Список регистрационных номеров. Для отобра­жения результатов запроса нажмите кнопку Готово.

Вид запроса приведен на рис. 20.

Задание 2

Создайте запрос, позволяющий определить сумму денег, на которую фирмы-поставщики поставили клиентов в гостиницу для каждого типа номеров. Для создания запроса используйте Мастер создания перекрестных запросов.

Порядок работы

1. Щелкните мышью вкладку Запросы.

2. Щелкните кнопку Создать. Появится диалоговое окно Но­вый запрос.

3. Выберите Перекрестный запрос. Появится окно Созда­ние перекрестных запросов.

4. Выберите таблицу Регистрация клиентов. Нажмите кноп­ку Далее.

5. Выберите названия поля ФирмаПоставщик в качестве заголовка строк в окне Доступные поля и переместите его в спи­сок Выбранные поля. Нажмите кнопку Далее.

6. Выберите название поля ТипНомера в качестве заголовка столбцов. Нажмите кнопку Далее.

7. В появившемся окне определите, какие вычисления надо провести для каждой строки. В данном случае это должна быть операция суммирования по полю Стоимость для каждой из фирм-поставщиков. Для этого в окне Поля выберите поле Стоимость, а в окне Функции выберите функцию Sum. На­жмите кнопку Далее.

8. В открывшемся окне Задайте имя запроса введите имя Сведения о поставках клиентов и нажмите кнопку Готово.

Вид запроса приведен на рис. 21.

Задание 3

Создайте запрос на обновление записей в полях СтоимостьЕдУслуги и СтоимостьУслуги в таблице Регистрация дополнительных услуг. Запуск запроса должен проводиться при нажатии кнопки Регистрация в форме Регистрация дополнительных услуг.

Порядок работы

1. Щелкните мышью вкладку Запросы.

2. Щелкните кнопку Создать. Появится диалоговое окно Но­вый запрос.

3. Выберите Конструктор. Появится окно Добавление таб­лицы.

4. В окне Добавление таблицы выберите таблицы Регист­рация дополнительных услуг и Стоимость дополнительных услуг, нажимая кнопку Добавить.

5. По окончании выбора нажмите кнопку Закрыть. Область таблиц запроса Конструктора запроса должна выглядеть при этом, как показано на рис. 22.

Рис.22

6. Войдите в пункт меню Запрос и выберите вид запроса Об­новление.

7. В области Бланка запроса в столбцах укажите поля таб­лицы Регистрация дополнительных услуг, которые необхо­димо изменить. В первом столбце выберите поле Стоимость­ЕдУслуги, а во втором столбце - поле СтоимостьУслуги.

8. В графе Обновление, используя Построитель выражений, наберите:

• для поля СтоимостьЕдУслуги:

[Стоимость дополнительных услуг]![СтоимостьЕдУслуги]

(данная запись означает, что в качестве обновленного значения берется выбранное значение из таблицы Стоимость дополни­тельных услуг);

• для поля СтоимостьУслуги:

[Регистрация дополнительных услуг] ! [СтоимостьЕдУслуги]* [ВремяПользованияУслугой]

(данная запись означает, что в качестве обновленного значения берется произведение записей из таблицы Регистрация допол­нительных услуг).

9. При выходе из Конструктора запросов задайте имя запро­са, например Услуги.

Для создания кнопки, позволяющей запускать запрос Услуги в форме Регистрация дополнительных услуг, сделайте сле­дующее:

1. Откройте форму Регистрация дополнительных услуг в режиме Конструктора.

2. На Панели элементов выберите значок Кнопка и размес­тите его в Области данных формы, при этом откроется окно мастера Создание кнопок.

3. В окне Категории выберите пункт Разное, а в окне Дей­ствия - пункт Запуск запроса. Нажмите кнопку Далее.

4. В открывшемся окне в качестве запроса, выполняемого при нажатиикнопки, выберите запрос Услуги. Нажмите кнопку Далее.

5. Выберите текст для размещения на кнопке и введите на­звание Регистрация. Нажмите кнопку Готово.

Задание 4

Создайте запрос, позволяющий получать

информацию о количестве свободных мест

в гостинице на любой заданный промежуток времени.

Данный запрос можно организовать как последовательное выполнение двух запросов. Первый запрос позволит определить количество занятых мест в заданный промежуток времени, а второй - количество свободных мест как разность между имеющимся количеством мест в гостинице (из таблицы Ин­формация о номерах) и полученным в первом запросе количе­ством занятых мест.

Порядок работы

Определение занятых номеров

1. Щелкните мышью вкладку Запросы.

2. Щелкните кнопку Создать. Появится диалоговое окно Но­вый запрос.

3. Выберите Конструктор. Появится окно Добавление таб­лицы.

4. В окне Добавление таблицы выберите таблицы Регист­рация клиентов и Тип номера, нажимая кнопку Добавить.

5. По окончании выбора нажмите кнопку Закрыть. Область таблиц запроса Конструктора запроса должна выглядеть при этом, как показано на рис. 23.

6. Войдите в пункт меню Вид и выберите пункт Групповые операции.

7. В области Бланка запроса в столбцах нужно указать поля таблицы Регистрация клиентов, которые необходимы для соз­дания запроса. В первом столбце выберите поле Тип номера, во втором столбце - поле Количество мест, в третьем столбце -День приезда, в четвертом столбце - День отъезда.

8. В графе Групповые операции необходимо правильно рас­ставить вид действий, которые будут совершаться с каждым из выбранных полей. По полю Тип номера должна проводиться Группировка по каждому из типов номеров. По полю Количе­ство мест должно проводиться суммирование мест для каждого типа номеров. Для этого в раскрывающемся окне выберите функцию суммирования Sum. По полям ДеньПриезда и День-Отъезда должны быть проверены условия отбора, поэтому вы­ставите вид действий Условие.

9. В графе Вывод на экран определите, пометив галочкой, поля, значения которых будут выводиться на экран. Такими полями должны быть Тип номера и Количество мест.

10. В графе Условие отбора определите условие отбора для формируемого запроса. Для того чтобы занятые номера попали в заданный промежуток времени, необходимо выполнение сле­дующих условий:

ДеньПриезда<=[ДеньОтьезда],

ДеньОтьезда>=[ДеньПриезда],

где переменные, стоящие в квадратных скобках, определяют заданный промежуток времени. Для ввода этих значений их необходимо описать в окне, которое открывается в пункте меню Запрос - Параметры (рис. 18).

Вид сформированного запроса Занятые номера приведен на рис. 23.

Определение свободных номеров

1. Щелкните мышью вкладку Запросы.

2. Щелкните кнопку Создать. Появится диалоговое окно Но­вый запрос.

Рис.23

  1. Выберите Конструктор. Появится окно Добавление таб­ лицы.

  2. В окне Добавление таблицы выберите таблицу Инфор­мация о номерах и запрос Занятые номера. По окончании на­ жмите кнопку Закрыть. Окно конструктора запросов примет вид, показанный на рис. 24.

  3. Создайте связи между полями Тип номера из таблицы Информация о номерах и Тип номера из запроса Занятые номера. При этом надо определить Параметры объединения. Для этого, щелкнув мышью на линии связи, выделите ее, а за­ тем, нажав правую клавишу мыши, откройте контекстное меню и войдите в пункт Параметры объединения. Выберите в каче­ стве параметра объединения пункт 2.

  4. В области Бланка запроса в столбцах необходимо указать поля, которые нужны для создания запроса. В первом столбце выберите поле Тип номера, а во втором столбце в качестве по­ ля надо взять вычисляемое поле СвобНомера. Название поля и выражение разделяются двоеточием.

Рис.24

7. Для создания выражения вызовите построитель выражений (нажав на кнопку на панели инструментов с изображением вол­шебной палочки) и наберите следующее выражение:

СвобНомера: [КоличествоМест]-ПF([Sum-КоличествоМест]>0;[Sum-КоличествоМест];0),

где Sum-КоличествоМест - поле, содержащее данные о коли­честве занятых мест, сформированное в результате запроса.

Вид запроса приведен на рис. 25.

Примечание. Для построения этого выражения исполь­зуйте функцию IIF, которая находится в папке Функции -Встроенные функции. Использование этой функции связано с доопределением значения Sum-КоличествоМест в случае, если по какому-либо из типов номеров номера не заполня­лись, поэтому некоторые записи в поле Sum-КоличествоМест могут не иметь никакого значения.

Задание 5

Создайте запрос, позволяющий получать информацию о виде и стоимости дополнительных услуг, которыми пользовался клиент, проживая в гостинице. Поиск информации по клиенту должен проводиться по номеру регистрационной карточки.

Порядок работы

1. Щелкните мышью вкладку Запросы.

2. Щелкните кнопку Создать. Появится диалоговое окно Но­вый запрос.

3. Выберите Конструктор. Появится окно Добавление таб­лицы.

4. В окне Добавление таблицы выберите таблицу Регист­рация дополнительных услуг. Нажмите кнопку Закрыть.

5. В области Бланка запроса в столбцах нужно указать поля таблицы Регистрация дополнительных услуг, которые необходимы для создания запроса. В первом столбце выберите поле ВидУслуг, во втором столбце - поле ДатаОказУслуги, в треть­ем - ВремяПользованияУслугой, в четвертом - Стоимость-Услуги, в пятом - НомерРегистрКарточки.

6. В графе Вывод на экран определите, пометив галочкой поля, значения которых будут выводиться на экран. Такими полями должны быть ВидУслуг, ДатаОказУслуги, Время­ПользованияУслугой, СтоимостьУслуги.

7. В графе Условие отбора определите условие отбора запи­сей для формируемого запроса. Должны быть отобраны только те записи, у которых номер, записанный в поле НомерРегистр­Карточки, совпадает с заданным, описанным в переменной [Номер регистрационной карточки]. Для ввода номера реги­страционной карточки переменную [Номер регистрационной карточки] необходимо описать в окне (рис. 18), которое откры­вается в пункте меню Запрос - Параметры.

Вид сформированного запроса Счет приведен на рис 26.

ПРАКТИЧЕСКАЯ РАБОТА № 4

Создание отчетов

Отчеты используются для представления данных в удобном виде. Отчет можно вывести на экран или распечатать на принте­ре. В нем можно группировать и сортировать данные в любом порядке, получать итоговые значения, средние значения и дру­гие статистические величины, а также помещать в него графи­ческие объекты.

Основными типами отчетов являются:

ленточные отчеты - в них данные распечатываются в ви­де строк и столбцов с группировкой и итогами. Их разновидно­сти включают отчеты с итоговым и групповым суммированием;

отчеты в столбец - данные распечатываются в виде фор­мы с возможным включением итогов и графиков;

отчеты для рассылки - создаются как шаблоны писем;

почтовые наклейки - создаются наклейки для конвертов.

Различия между формами и отчетами

Главное различие между формами и отчетами заключается в их назначении. Если формы задуманы для ввода данных, то отчеты - для просмотра данных. В формах можно использовать вычисляемые поля. В отчетах вычисляемые поля формируются на основе общей группы записей, страницы записей или всех записей отчета (итоги).

Все, что можно сделать с формой, можно сделать и с отчетом (за исключением ввода данных). Форму можно сохранить в виде отчета, а затем редактировать в окне конструктора отчетов.

Отчеты можно создавать, используя Мастер отчетов и Кон­структор отчетов.

Записи в отчете обрабатываются последовательно. В зависи­мости от макета отчета элементы данных обрабатываются по-разному. Отчеты делятся на следующие разделы:

заголовок отчета - печатается один раз в начале каждого отчета. Здесь же может быть размещена дата создания отчета;

верхний колонтитул - печатается вверху каждой страни­цы. Обычно верхние колонтитулы служат в качестве заголовков столбцов для итоговых данных;

заголовок группы - печатается перед обработкой первой записи группы;

область данных - печатается каждая запись таблицы или динамического набора данных запроса;

примечание группы - используется для отображения ито­говых данных в записях текущей группы. Печатается после об­работки последней записи группы;

нижний колонтитул - обычно помещаются номера стра­ницы и вычисляемые элементы управления. Иногда подводятся итоги по страницам и по группам. Печатается внизу каждой страницы;

примечание отчета - печатается один раз в конце отчета после всех записей данных и примечаний групп. Обычно в при­мечании отчета отображается общий итог и другие статистиче­ские данные.

Вид Конструктора отчетов приведен на рис. 27.

Задание 1

Создать бланк счета об оплате дополнительных услуг, которыми пользовался клиент, проживая в гостинице.

Порядок работы

1. Щелкните мышью вкладку Отчеты.

2. Щелкните кнопку Создать. Появится диалоговое окно Но­вый отчет.

3. Выберите Мастер отчетов. А в окне Выбор таблицы или

запроса выберите в качестве данных для создания отчета запрос Счет. Нажмите кнопку Далее.

4. В открывшемся окне Создание отчетов в качестве полей для отчета выберите все поля из списка. Нажмите кнопку Далее.

5. В открывшемся окне на вопрос о добавлении уровней группировки ответьте «нет». Нажмите кнопку Далее.

6. В следующем открывшемся окне определите порядок сор­тировки записей (например, по дате оказания услуги). Нажми­те кнопку Итоги. В открывшемся окне Итоги определите итоговые значения, которые необходимо вычислить. Для этого по­ставьте галочку для вычисления Sum по полю СтоимостьУслу­ги. Нажмите кнопку ОК для возвращения в окно Создание от­четов. Нажмите кнопку Далее.

  1. В открывшемся окне определите вид макета для отчета (например, ступенчатый). Нажмите кнопку Далее.

  2. Выберите стиль оформления отчета (например, строгий). Нажмите кнопку Далее.

  3. В качестве имени отчета введите имя Счет. Нажмите кнопку Готово.

Вид созданного отчета приведен на рис. 28.

Рис.27

Задание 2

Создать отчет о клиентах, въехавших за день в гостини­цу, и выручке, полученной от них.

Примечание. Для создания такого отчета надо предва­рительно создать запрос на выборку.

В запросе в качестве условия отбора в поле ДеньПриезда указать день, по которому необходимо получить сведения. Соз­дайте такой запрос самостоятельно, дав ему имя Сведения о заезде, а в качестве выводимых полей возьмите: ФИОклиен-та, НомерПутевки, ФирмаПоставщик, СтоимостьПутевки.

Порядок работы

  1. Щелкните мышью вкладку Отчеты.

  1. Щелкните кнопку Создать. Появится диалоговое окно Но­ вый отчет.

  1. Выберите Конструктор. В окне Выбор таблицы или за­ проса выберите в качестве данных для создания отчета запрос Сведения о заезде. Нажмите кнопку Далее.

  2. В открывшемся окне Конструктора разместите в области данных поля данных, используемые в запросе (подобно тому, как это делалось в Конструкторе форм), а заголовки полей - в области Верхний колонтитул, в линию.

  3. В области Заголовка отчета создайте заголовок Сведения о заезде и, используя Панель элементов, поле для ввода даты, для которой составляется отчет.

6. Выделите поле для ввода даты, с помощью правой клави­ши мыши войдите в пункт меню Свойства и в графе Данные, используя Построитель выражений, наберите имя переменной [День приезда].

7. В области Примечание отчета создайте пустое поле, куда, как и в предыдущем пункте, используя Построитель выраже­ний, введите формулу для вычисления суммы по полю СтоимостьПутевки. В графе пункта меню Свойства - Формат поля задайте формат поля как Денежный.

8. В области Примечание отчета создайте поле для ввода даты составления отчета. Для ввода даты используйте встроен­ную функцию возвращения системной даты Now().

9. Для отделения заголовков полей и итоговых значений можно воспользоваться Мастером линий из Панели элементов.

Общий вид отчета в Конструкторе отчетов представлен на рис. 29, а вид отчета - на рис. 30.

ПРАКТИЧЕСКАЯ РАБОТА № 5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]