Построение запросов в ACCESS — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Построение запросов в ACCESS

2020-05-07 222
Построение запросов в ACCESS 0.00 из 5.00 0 оценок
Заказать работу

Для построения запросов следует воспользоваться Конструктором запросов. Рассмотрим пример построения следующих запросов:

1. Просмотр авторов книги

2. Ввод нового автора и его книги

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

Форма имеет вид, представленный на рисунке 7.

Рисунок 7. Структура формы для 1 запроса

 

Далее формируем сам запрос через режим Конструктора (рисунок 7).

 

Рисунок 8 – Конструкция запроса 1

 

Конструкция запроса должна содержать все используемые таблицы. Каждый столбец данных отвечает за необходимую по смыслу запроса информацию: 1 столбец (входная информация) – название книги, запрос получает эту информацию из поля «Название» формы «формаЗапроса1». Следующие два столба являются результатом запроса – это два информационных поля из таблицы «Авторы» - Фамилия и Имя. Кнопка на форме связывается с запросом и при нажатии на нее выполняется наш запрос. На рисунке 9 представлен результат работы Запроса 1.

 

 

а)

б)

Рисунок 9. Результат работы запроса1 а) Вид формы; б) Вид таблицы запроса

Не забудьте вставить в отчет вид SQL запроса. В нашем случае он выглядит следующим образом:

SELECT Книги.Название, Авторы.Фамилия, Авторы.Имя

FROM Книги INNER JOIN (Авторы INNER JOIN АвторКниги ON Авторы.КодАвтора = АвторКниги.КодАвтора) ON Книги.КодКниги = АвторКниги.КодКниги

GROUP BY Книги.Название, Авторы.Фамилия, Авторы.Имя

HAVING (((Книги.Название)=[Формы]![формаЗапроса1]![Название]));

 

Если первый запрос был посвящен просмотру БД по условию (поиск информации), то второй запрос – на добавление.

Снова создадим форму с 4 полями: Поле 1 – Фамилия автора, Поле 2 – Имя автора, Поле 3 - Дополнительное информационное поле, Поле 4 – Название книги. Также нам понадобятся два поля со списками для добавления Издательства и Раздела (рисунок 10).

Рис. 10. Макет Формы запроса на добавление

 

Для добавления новой книги с новым автором нам необходимо сделать три запроса на добавления: Запрос1 – добавить автора в таблицу «Авторы», Запрос2 – добавить название книги, а также издательство и раздел в таблицу «Книги», Запрос3 добавляет запись в таблицу-связку «АвторКниги». Рассмотрим случай, если автор один, в противном случае необходимо вызывать запрос несколько раз, используя условие окончания ввода авторов. Так как действий несколько, будем вызывать запросы по очереди, используя макросы, связанные в двумя кнопками: «Добавить» - выполнение первых двух запросов, «Сохранить» - выполнение третьего запроса и закрытие БД (сохранение внесенных изменений).

Рассмотрим структуру Запроса1 – добавление автора:

INSERT INTO Авторы (Фамилия, Имя, Примечание)

SELECT DISTINCT Формы!ФормаЗапроса2!Поле0 AS Фамилия, Формы!ФормаЗапроса2!Поле4 AS Имя, Формы!ФормаЗапроса2!Поле6 AS Примечание;

Данный запрос берет данные из полей формы (обратите внимание - обращаться надо к имени поля!!!) и формирует новую запись в таблице «Авторы» с соответствующими полями. На рис. 11 представлен запрос1 в формате конструктора.

 

Рис. 11 – Запрос1 в режиме конструктора

 

Аналогично строится запрос2 на добавление новой книги:

INSERT INTO Книги (Название, Раздел, Издательство)

SELECT DISTINCT Формы!ФормаЗапроса2!Поле8 AS Название, Формы!ФормаЗапроса2!ПолеСоСписком17 AS Раздел, Формы!ФормаЗапроса2!ПолеСоСписком21 AS Издательство;

Макрос1 будет связывать два запроса последовательно (рисунок 12).

Макрос2 будет содержать три команды – запуск запроса3 на добавление, закрытие всей БД, что приведет к сохранению изменений и закрытие самой формы запроса2 (рис. 13).

Запрос на добавление в таблицу-связку имеет следующую структуру:

INSERT INTO АвторКниги (КодКниги, КодАвтора)

SELECT Книги!КодКниги AS КодКниги, Авторы!КодАвтора AS КодАвтора

FROM Книги, Авторы

WHERE ((([Формы]![ФормаЗапроса2]![Поле0])=[Авторы]![Фамилия]) AND (([Формы]![ФормаЗапроса2]![Поле8])=[Книги]![Название]));

Рис. 12. Макрос1 в режиме конструктора

 

Рис. 13. Макрос2 в режиме конструктора

 

Как видно из текста SQL запроса добавление в таблицу АвторКниги происходит только при условии, что соответствующие данные есть как в таблице «Книги», так и в таблице «Авторы» (условие WHERE). В режиме конструктора Запрос представлен на рисунке 14.

Рис. 14 – Запрос3 в режиме конструктора

 

Мы рассмотрели запрос на добавление, в случае запроса на удаление необходимо перед выполнением запроса удалить связи между таблицами. Потом их восстановить (каскадно уже не получится, но связь по полю вернуть!!).

P.S. Написание запросов – задача творческая, имеет несколько вариантов исполнения, поэтому рекомендация – КОНСУЛЬТИРУЙТЕСЬ!!!

Защита практической работы

Содержание отчета

В отчете должны присутствовать следующие пункты:

1) Титульный лист

2) Задание

3) Структура БД

4) Примеры заполнения таблиц

5) Описание запросов на языке SQL.

6) Результаты работы запросов

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

 

Требования при подведении итогов текущей и промежуточной аттестаций

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


Поделиться с друзьями:

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

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

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

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.