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

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

Запрос определяет группу записей, с которыми вы хотите работать. Его можно сделать, например, в такой форме: "Предъявите мне имена покупателей, проживающих в таком-то городе, сделавших заказы на такую-то сумму". Ответом будет таблица с временным набором данных, которая называется динамическим набором. Записи динамического набора могут включать поля из одной или нескольких таблиц (рис. 1).

Рис. 1. Динамический набор данных из разных таблиц

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

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

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

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

Запросы по образцу.

В окне Запрос на выборку (рис. 2) вы конструируете запрос с помощью средства, именуемого запросом по образцу (Query By Example, QBE-запрос). При этом вы формируете запросы, перетаскивая поля из верхней части окна Запрос на выборку в бланк запроса по образцу, и размещаете поля в бланке именно в той последовательности, в какой хотите видеть их в табличном представлении. Иными словами, вы используете бланк QBE, чтобы указать MS Access, какими вы хотели бы видеть результаты вашего запроса. Работа с бланком запроса напоминает создание фильтра, но при формировании запроса вы можете извлекать данные сразу из нескольких таблиц.

После выбора полей вы используете бланк QBE-запроса для дополнительной настройки запроса на выборку записей, которые вас интересуют (рис. 2).

Рис. 2. Настройка QBE-запроса.

Бланк запроса по образцу облегчает процедуру формирования запроса. Зачастую один вопрос влечет за собой другой, и запрос приходится модифицировать.

Например, вы начали с поиска всех покупателей из определенного города. Затем, внеся незначительные дополнения в условие отбора бланка QBE, вы сможете найти всех покупателей из данного региона, которые заказали товар на заданную сумму. Наконец, вам может понадобиться перечень покупателей из данного города, которые сделали заказ на определенную сумму в заданный период времени, например за декабрь минувшего года.

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

Создание и сохранение запроса.

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

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

Выполните следующие действия:

1

На вкладке «Создание» выберите объект «Конструктор запросов».

2

Щелкните по нему.

3

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

4

Дважды щелкните на строке с именем таблицы Покупатели, или выберите ее и нажмите кнопку Добавить, после чего щелкните на кнопке Закрыть.

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


Рис. 3. Окно Добавление таблицы со списком таблиц базы данных для формирования запроса.

Рис. 4. Список полей таблицы Покупатели.

Теперь надо включить в запрос поля:

1

Перетащите имя поля Номер из списка полей в первую клетку строки Поле бланка запроса по образцу, либо щелкните на первой клетке и выберите в списке поле Номер и нажмите

2

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


Сохраните запрос и дайте ему имя:

1

Выберите команду меню Файл–Сохранить.

2

В появившемся диалоге Сохранение введите имя запроса Покупатели в Липецке и Саратове щелкните на кнопке OK. Новое имя запроса появится в строке заголовка окна запроса. Кроме того, MS Access добавит имя этого запроса в список ярлычка Запросы в окне База данных для дальнейшего использования.

3

Закройте окно запроса Покупатели в Липецке и Саратове и проверьте наличие его в базе данных на ярлычке Запросы.


Установка условия отбора нужных записей.

Если вы прямо сейчас откроете запрос (нажав кнопку Открыть в окне База данных), то увидите записи обо всех покупателях из таблицы Покупатели. Поскольку требуются сведения только о покупателях из Липецка и Саратова, необходимо поставить соответствующее условие отбора.

Для установки условия отбора вам может понадобиться выражение, по которому MS Access будет выбирать записи.

Нам нужно получить список покупателей из Липецка и Саратова, поэтому условие отбора должно быть задано для столбца Город.

Для задания этого условия выполните следующие действия:

1

В окне База данных в списке запросов выделите запрос Покупатели в Липецке и Саратове и нажмите кнопку Конструктор. (Если же этот запрос уже открыт в табличном режиме, перейдите в режим Конструктора, для этого на панели инструментов нажмите кнопку Конструктор).

2

В бланке запроса щелкните мышью в ячейку строки Условие отбора под полем Город.

3

Напечатайте Липецк и нажмите клавишу Enter. MS Access автоматически поставит кавычки по обеим сторонам введенного слова, указывая на его принадлежность к текстовому типу данных (рис. 5). Таким образом, вы задали критерий для поиска и отбора данных в таблице Покупатели.

4

Для начала выполнения Запроса по заданному критерию нажмите кнопку  Результатом выполнения запроса по этому условию (критерию) отбора  станет таблица только с двумя покупателями из Липецка.

5

Снова перейдите в режим Конструктора.

Условие отбора может одержать множество критериев для поиска и отбора данных. В бланке Запроса ниже строки Условие отбора имеется строка или: в которой можно задать дополнительный критерий отбора записей.

Зададим следующий критерий для отбора: найти покупателей из г. Саратов. Выполните следующее. В клетке под словом "Липецк" напечатайте Саратов и нажмите клавишу Enter

6

Дайте команду Запуск. Заданному условию соответствует найденное число покупателей: два из Саратова и два из Липецка.


Рис. 5. Бланк Запроса с одним критерием отбора записей

Сортировка в режиме запроса

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

1

Перейдите в Режим Конструктора, чтобы внести дополнения в бланк Запроса.

2

Щелкните в ячейке строки Сортировка в столбце Имя

3

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

4

Дайте команду Запуск, чтобы увидеть результаты выполнения сортировки. Теперь записи в столбце Имя расположены в алфавитном порядке


Создание запроса на основе связанных таблиц

Теперь создадим Запрос на основе связанных таблиц: "Какие покупатели и у каких продавцов сделали заказы в течение с марта по май 1996 года?"

В результате Запроса на экран должны выводиться Номера заказов, Имена покупателей, Стоимость заказов, Даты покупки заказов, Имена продавцов.

Для выполнения данного задания потребуются все три таблицы учебной базы данных – Заказы, Покупатели и Продавцы.

Создайте такой Запрос для этого выполните следующие действия:

1

Выберите вкладку Создать

2

Выберите Конструктор запросов

3

Добавьте все три таблицы

4

Покупатели и Продавцы появятся в окне Запрос-выборка

Выберите команду меню Файл–Сохранить

Присвойте запросу имя Информация о заказах и щелкните на кнопке ОК.

Перетащите из таблицы Заказы в бланк запроса по образцу следующие поля: Номер, Стоимость, Дата покупки.

Из таблицы Покупатели перетащите в бланк запроса поле Имя.

Из таблицы Продавцы перетащите в бланк запроса поле Имя (рис. 7).

Обратите внимание на то, что между этими списками полей автоматически возникают соединительные линии, поскольку между таблицами уже установлены связи (рис. 6).

Рис. 6. Существующие связи между таблицами

Рис. 7. Заполненный бланк запроса с включенной строкой Имя таблицы

Теперь надо задать условие отбора и просмотреть результаты. Для отбора заказов, сделанных с марта по май 2005 года включительно, вы можете воспользоваться выражением с использованием оператора Between...And (От...До), который выполняет выборку в период ОТ одной даты ДО другой даты включительно.

Задайте условие отбора:

1

В строке Условие отбора под полем Дата покупки напечатайте Between 1-03-05 And 31-05-05, либо >29-02-05 And <1-06-05, а затем нажмите клавишу Enter. Формат даты сразу же поменяется и появится символ #, окаймляющий обе даты

2

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

3

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

4

Сохраните запрос командой Файл–Сохранить и затем закройте запрос


Рис. 8. Вид бланка с увеличенной шириной столбца для условия отбора.

Создание запроса с параметром

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

1

Создайте запрос с помощью конструктора.

2

Перетащите из таблицы Покупатели в бланк запроса по образцу следующие поля: Имя, Рейтинг, Город.

3

В условие отбора для поля Город введите: =[] (квадратные скобки означают, что параметр будет вводится с клавиатуры).

4

Сделайте поле Город при просмотре запроса, для этого уберите галочку в строке Вывод на экран для поля Город (рис. 9).

5

Закройте окно конструктора запросов.


Рис. 9. Запрос с параметром

Работа с запросом с параметром:

1

Откройте запрос «Информация о покупателях» двойным щелчком мыши. При этом откроется окно ввода параметра

2

В строку ввода введите название города (например, Саратов) и нажмите кнопку ОК. Появится таблица, содержащая сведения о покупателях, проживающих в городе Саратове


Лабораторная работа №5