В базе данных «Телефонная компания» создадим запрос на выборку всех льготников. Для этого нам потребуется таблица Абоненты (включите в запрос все ее поля) и условие отбора “>0” в поле Льгота. Результатом выполнения такого запроса будут все записи таблицы Абоненты, в поле Льгота у которых стоит число, большее нуля, т.е. все абоненты, имеющие льготы. Напомним, что для числовых полей (а поле Льготаявляется именно таким) пустое поле считается равным 0.
Для выборки информации обо всех телефонных разговорах: кто, когда и в какой город звонил – за какой-либо период, например, за февраль 2004 года, нам потребуются две таблицы: Абоненты и Разговоры. Из первой мы выберем фамилию и номер телефона абонента, из второй – дату звонка и город (номер телефона можно взять и из второй таблицы, это поля связи и они в соответствующих записях связанных таблиц совпадают). В качестве условия отбора в поле Дата установим >=1.02.2004 and <=29.02.2004 (границы февраля 2004 года).
Допустим, нас интересуют не все разговоры за февраль 2004 года, а только междугородные. Можно было бы строить этот запрос по аналогии с предыдущим, задав не одно, а два условия отбора. А можно воспользоваться уже проделанной работой. Для этого при создании запроса выберите не таблицы, а запросы, а среди них – только что построенный запрос о разговорах за февраль. Включим в новый запрос все поля старого и зададим в поле Городусловие отбора <>””(отсутствие каких-либо символов в кавычках означает, что текстовое поле Город не является пустым).
Запрос в Access является объектом, который сохраняется в файле базы данных и может многократно повторяться. Все запросы, с которыми вы работали до сих пор, содержали конкретные значения льгот, дат и т.д. Если требуется повторить такой запрос с другими значениями в условиях отбора, его придется открыть в режиме конструктора, изменить условия отбора записей и выполнить.
Чтобы каждый раз не изменять запрос, можно вместо ввода конкретных данных использовать параметр. При выполнении такого запроса выдается окно диалога, в котором пользователь может ввести конкретное значение и затем получить нужный результат.
Построим для базы данных «Телефонная компания» запрос для получения информации о разговорах одного – любого – абонента. Для этого в условие отбора надо ввести не конкретную фамилию, а подсказку пользователю, которая появится на экране в момент открытия запроса, например [Введите фамилию абонента: ] (именно так, в квадратных скобках). Когда в ответ на эту подсказку в окне диалога будет введена фамилия абонента, запрос будет выполнен и мы увидим список разговоров указанного нами абонента.