Печатать эту главуПечатать эту главу

Лабораторная работа № 7. Основы работы в СУБД Microsoft Access. Создание и использование запросов.

2. «СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ»

2.1. ЗАДАНИЕ 9. Построение запроса на выборку данных из нескольких таблиц

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

Создание запроса начинают с выбора тех таблиц базы, на которых будет основан запрос. В данном случае – это Учетная карта  и  Ведомость. Выбор таблиц выполняют в диалоговом окне Добавление таблиц. В нем отображаются все таблицы, имеющиеся в базе. Выбранные таблицы заносятся в верхнюю половину бланка запроса по образцу щелчком на кнопке Добавить (рис. 26). Наличие в диалоговом окне вкладки Таблицы и Запросы говорит о том, что запрос можно основывать не только на таблицах, но уже и на имеющихся запросах

Рис. 26. Диалоговое окно Добавление таблицы. 

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

Рис. 27. Бланк запроса по образцу. В верхней части – выбранные таблицы. В нижней – выбранные (двойным щелчком или перетаскиванием) поля.
В строке Сортировка для поля ФИО показан раскрывающийся список для назначения типа сортировки по данному полю

3. Строку Поле можно заполнить двумя способами: или перетаскиванием названий полей из таблиц в верхней части бланка, или двойным щелчком на этом поле. Каждому полю будущей результирующей таблицы соответствует один столбец бланка запроса по образцу. Добавьте поля ФИО, Nst и Ngr из таблицы Учетная карта перетаскиванием мышью, а поля с названиями зачетов и экзаменов из таблицы Ведомость – двойным щелчком. Строка Имя таблицы заполняется автоматически при установке поля.

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

5. Закройте запрос, при закрытии дайте ему имя Общая ведомость.

6. Запустите запрос на выполнение, используя команду горизонтального меню Запрос>Запуск, или щелкнув на значке Представление запроса  панели инструментов Конструктор запроса. Посмотрите, какие данные он выводит.

7. Закройте запрос.

8. Следуя инструкциям 1 – 8, объединив данные из трех таблиц Группы, Преподаватели, Кафедры, создать запрос Кураторы, который дает список кураторов групп с их местом работы: название и месторасположение кафедры. Отсортируйте список кураторов по алфавиту (рис. 28). 

Рис. 28. Результаты выполнения запроса Кураторы, выполненного
по трем таблицам Группы, Преподаватели, Кафедры.  
Записи отсортированы по алфавиту кураторов

Построение запросов с условием отбора

 Условиями отбора называют ограничения, которые накладываются на запрос или фильтр для отбора конкретных записей. Например, требуются сведения не обо всех студентах, а только о тех, кто обучается на бюджетной основе. Для этого следует указать условия отбора, которые позволят включать в набор записей только те, у которых в поле Paym (Форма опл)  находится значение "Б" (рис. 29). 

Рис. 29. Для поля Paym указано Условие отбора для студентов,
обучающихся на бюджетной основе. В результирующей таблице
столбец Paym отражаться не будет, т.к. отсутствует галочка
в строке Вывод на экран

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

Можно одновременно определить несколько условий отбора для одного поля или для разных полей. При вводе выражений в несколько ячеек Условие отбора Access объединяет их с помощью оператора And или Or. Если выражения находятся в разных ячейках одной и той же строки, используется оператор And. Если выражения находятся в разных строках бланка, применяется оператор Or.

Например, если требуется получить список студентов, не подлежащих призыву в армию, то в него войдут все девушки (поле pol=”ж”), студенты имеющие льготы (поле Lgoty= ДА), мужчины, дата рождения которых позднее, т.е. меньше 1 января 1985 года (на 2003 год). Тогда бланк запроса будет иметь вид, аналогичный показанному на рис. 30.

Рис. 30. Критерий запроса включает три условия для разных полей,
объединенных оператором OR. Результирующие записи должны
удовлетворять одному из трех условий