Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПР7 ЗАПРОСЫ и формы (Борей).doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2.04 Mб
Скачать

7.1. Импорт таблиц бд Борей

Задание 1. Импорт таблиц

    1. Создайте новую пустую базу данных. Назовите ее Борей_ Фамилия и сохраните в своей папке.

    2. Организуйте в созданную БД импорт всех таблиц из базы данных Борей (old).mdb, находящейся в папке tasks. Для этого используйте кнопку Access на вкладке Внешние данные, выберите файл Борей (old).mdb. Затем в окне Импорт таблиц выделите все таблицы (кнопка Выделить все). Важно импортировать сразу все таблицы, а не по частям, чтобы сохранились межтабличные связи. Нажмите кнопку ОК, подождите несколько секунд до завершения операции импорта, а затем убедитесь, что в Вашей базе данных сейчас присутствуют только 8 таблиц из базы данных Борей.

Задание 2. Схема данных БД Борей

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

7.2. Создание запросов по одной таблице

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

7.2.1. Запросы с условием

Задание 3. Найти всех клиентов из Берлина и Мадрида.

Задание 4. Для каждого сотрудника вывести список обслуженных им клиентов. Включить в список только тех клиентов, которые не имеют факса (условие отбора Null).

7.2.2. Использование шаблонов в запросах с условием

При построении запросов в БД Access используются те же шаблоны, что и при написании имен файлов и путей к ним в Windows, а также некоторые другие:

* любое количество допустимых символов;

? один любой символ;

# любая одиночная цифра от 0 до 9;

[список] любой одиночный символ, входящий в список (например, [A-Д] это буква А, Б, В, Г или Д); используется в сочетании с шаблонами * или ?

[!список] любой одиночный символ, не входящий в список (например [!A-В] – это любая буква, только не А, не Б и не В); также используется в сочетании с шаблонами * или ?

Перед этими шаблонами, заключенными в кавычки, должно быть указано ключевое слово Like: например, Like "F*" – шаблон для отбора всех имен любой длины, начинающихся на F.

Задание 5. Вывести список марок товаров, количество которых на складе выражается трехзначным числом.

Задание 6. Вывести список клиентов, в телефоне которых отсутствует код (т.е. номер телефона не начинается открывающей скобкой). Используйте шаблон Like "[!(]*"

7.3. Создание запросов по нескольким таблицам

7.3.1. Запросы с вычисляемыми полями

Задание 7. Вывести список кодов заказов с расчетом числа дней выполнения каждого заказа (с помощью кнопки Построить). Формула: Дата исполнения – Дата размещения. Вычисляемое поле назовите Длительность.

Задание 8. Для каждого сотрудника вывести список просроченных заказов (построить вычисляемое поле Дата исполнения – Дата назначения и в строке Условие отбора ввести условие >0).

Задание 9. Для каждого заказа рассчитать его стоимость Цена*Количество*(1-Скидка). Найти самый дорогой заказ (упорядочить по убыванию стоимости и отобразить только одну запись в результате).

7.3.2. Параметрические запросы

Задание 10. Пример создания параметрического запроса.

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

Ход выполнения.

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

    2. Добавьте в запрос условие отбора записей, позволяющее указать только тех клиентов, которые работают в должности представителя. Сохранить запрос под именем 10-1 Представители.

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

    4. Организуем такой запрос, который позволил бы выводить список клиентов, работающих в той должности, которая будет указываться пользователем перед выполнением запроса. Для этого в строке Условие отбора поля Должность впишите фразу в квадратных скобках [Укажите должность клиента]

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

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

Задание 11. Пример-2 создания параметрического запроса.

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

Ход выполнения.

    1. Добавьте в запрос необходимые таблицы и поля.

    2. В строке Условие отбора поля Дата размещения впишите фразу >= [Позже какой даты был размещен заказ?]

Просмотрите в режиме таблицы результат.

Задание 12. Пример-3 создания параметрического запроса.

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

Ход выполнения.

    1. Добавьте в запрос необходимые таблицы и поля.

    2. В строке Условие отбора поля Страна впишите:

[Введите первую страну] OR [Введите вторую страну]

(регистр логической функции Or значения не имеет.)

Выполните запрос и убедитесь в правильности выбора записей.

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

Задание 14. Вывести список товаров, причем верхнее значение цен выводимых товаров указывается пользователем (подсказка: условие для цены <=[параметр]).

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

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