Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Access.doc
Скачиваний:
8
Добавлен:
06.12.2018
Размер:
1.05 Mб
Скачать

Лекция 8. Построение запросов

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

  1. загрузить базу данных и активизируйте ярлык Запросы;

  2. двойным щелчком выбрать ярлык нового объекта Создание запроса в режиме конструктора;

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

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

  5. задать условия отбора;

  6. сохранить запрос;

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

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

Запрос на основе одной таблицы

В базе данных «Телефонная компания» создадим запрос на выборку всех льготников. Для этого нам потребуется таблица Абоненты (включите в запрос все ее поля) и условие отбора “>0” в поле Льгота. Результатом выполнения такого запроса будут все записи таблицы Абоненты, в поле Льгота у которых стоит число, большее нуля, т.е. все абоненты, имеющие льготы. Напомним, что для числовых полей (а поле Льгота является именно таким) пустое поле считается равным 0.

Запрос на основе нескольких таблиц

Для выборки информации обо всех телефонных разговорах: кто, когда и в какой город звонил – за какой-либо период, например, за февраль 2004 года, нам потребуются две таблицы: Абоненты и Разговоры. Из первой мы выберем фамилию и номер телефона абонента, из второй – дату звонка и город (номер телефона можно взять и из второй таблицы, это поля связи и они в соответствующих записях связанных таблиц совпадают). В качестве условия отбора в поле Дата установим >=1.02.2004 and <=29.02.2004 (границы февраля 2004 года).

Запрос на основе другого запроса

Допустим, нас интересуют не все разговоры за февраль 2004 года, а только междугородные. Можно было бы строить этот запрос по аналогии с предыдущим, задав не одно, а два условия отбора. А можно воспользоваться уже проделанной работой. Для этого при создании запроса выберите не таблицы, а запросы, а среди них – только что построенный запрос о разговорах за февраль. Включим в новый запрос все поля старого и зададим в поле Город условие отбора <>”” (отсутствие каких-либо символов в кавычках означает, что текстовое поле Город не является пустым).

Запрос с параметром

Запрос в Access является объектом, который сохраняется в файле базы данных и может многократно повторяться. Все запросы, с которыми вы работали до сих пор, содержали конкретные значения льгот, дат и т.д. Если требуется повторить такой запрос с другими значениями в условиях отбора, его придется открыть в режиме конструктора, изменить условия отбора записей и выполнить.

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

Построим для базы данных «Телефонная компания» запрос для получения информации о разговорах одного – любого – абонента. Для этого в условие отбора надо ввести не конкретную фамилию, а подсказку пользователю, которая появится на экране в момент открытия запроса, например [Введите фамилию абонента: ] (именно так, в квадратных скобках). Когда в ответ на эту подсказку в окне диалога будет введена фамилия абонента, запрос будет выполнен и мы увидим список разговоров указанного нами абонента.