
- •Работа с запросами. Создание запроса.
- •Создание простого запроса на выборку с помощью мастера
- •1 В окне базы данных перейдите к вкладке Запросы и нажмите кнопку Создать.
- •Разработка или изменение запроса
- •Добавление в запрос таблицы или запроса.
- •Примечания
- •Удаление таблицы или запроса из запроса.
- •Объединение нескольких таблиц и запросов в запросе.
- •Добавление полей в бланк запроса или расширенного фильтра.
- •Удаление поля из бланка запроса или расширенного фильтра.
- •Перемещение поля в бланке запроса или расширенного фильтра.
- •Вставка поля между другими полями в бланке запроса или расширенного фильтра.
- •Изменение имени поля в запросе.
- •Вставка или удаление строки условий отбора из бланка запроса или расширенного фильтра.
- •Ввод условий отбора в запрос или расширенный фильтр для восстановления определенных записей.
- •Сортировка записей с помощью бланка запроса или расширенного фильтра.
- •Отображение или скрытие поля в результатах запроса.
- •Выполнение вычислений в запросе.
- •Вычисления в запросе.
- •Статистические функции в строке «Групповая операция» бланка запроса и их использование.
- •Задание значений свойств запроса, полей запроса или списков полей.
- •Использование символа «звездочка» (*) для возвращения непустых значений.
- •Отображение в запросе максимальных или минимальных значений.
- •Способы объединения данных из нескольких таблиц или запросов в запросе.
- •Использование условия отбора в запросах или фильтрах для восстановления определенных записей.
- •Контрольные вопросы.
Использование символа «звездочка» (*) для возвращения непустых значений.
Если в запросе при определении условий отбора для поля используется выражение Like "*", в результирующий набор будут включены записи, содержащие пустую строку в этом поле, и не будут включены записи, содержащие пустое значение.
Отображение в запросе максимальных или минимальных значений.
В запросе могут быть отображены, например, записи с 10 максимальными или минимальными значениями в определенном поле, а также 10 процентов записей с максимальными или минимальными значениями.
1. Откройте запрос в режиме конструктора.
2. Добавьте в бланк запроса поля, которые следует вывести в результирующем наборе записей.
3. В ячейке строки Сортировка поля, для которого следует вывести максимальные или минимальные значения, выберите по убыванию для вывода наибольших значений, или по возрастанию для вывода наименьших значений. Если производится сортировка по другим полям, то эти поля должны находиться в бланке запроса справа от поля, для которого отбирается набор значений.
4. Выберите поле со списком Набор значений на панели инструментов.
5. Введите или выберите процентную долю или число наибольших или наименьших значений, отображаемых в результирующем наборе записей.
Примечание. Для того чтобы вывести процентную долю, введите после числа знак процентов (%).
6. Для просмотра результатов запроса нажмите кнопку «Вид» на панели инструментов.
Примечание. Задание значения свойства «Набор значений» (TopValues) в окне свойств запроса приводит к тем же результатам, что и ввод значения в одноименное поле со списком на панели инструментов.
Способы объединения данных из нескольких таблиц или запросов в запросе.
Запросы удобно использовать для объединения или выполнения действий над данными, расположенными в нескольких таблицах или запросах. Например, необходимо просмотреть данные о клиенте, а также заказы, которые он разместил. Для получения этих сведений необходимо получить данные из таблиц «Клиенты» и «Заказы».
При добавлении в запрос нескольких таблиц или запросов необходимо убедиться, что их списки полей соединены друг с другом линией объединения, что позволяет Microsoft Access определить тип объединения.
Если таблицы в запросе не соединены прямо или косвенно друг с другом, то для Microsoft Access остается неизвестным, какие записи связаны с какими, и на экране отображаются все комбинации записей между двумя таблицами (это называется «полное объединение» или «декартово произведение»). Таким образом, если таблица содержит 10 записей, то в результате запроса будет 100 записей (10X10). Также время выполнения запроса очень увеличится, а полученные в конечном счете результаты будут не столь значительны.
Если же ранее в окне «Схема данных» были созданы связи между таблицами, то при добавлении связанных таблиц в режиме конструктора линии объединения выводятся на экран автоматически. Если необходима целостность данных, то над линией объединения автоматически отображается цифра «1», означающая, что таблица находится на стороне «один» в отношении связей «один-ко-многим», а также знак целостности для указания таблиц, находящихся на стороне «многие».
Если связи не были созданы, то при добавлении в запрос двух таблиц, содержащих поля с одинаковым или совместимым типом данных, а также если одно из объединенных полей является ключевым, то связи будут созданы автоматически. В этом случае символы «один» и «многие» отображены не будут, так как целостность данных не требуется.
Иногда таблицы, добавляемые в запрос, не содержат полей, которые могут быть объединены. В этом случае рекомендуется создать одну или несколько дополнительных таблиц или запросов, которые будут служить в качестве моста между таблицами, данные которых должны быть использованы. Например, если в запрос добавить таблицы «Клиенты» и «Заказано», то между ними не будет линии связи, так как они не содержат полей, которые могут быть объединены. А таблица «Заказы» связана с обеими таблицами. Таким образом, таблицу «Заказы» можно включить в запрос, тем самым обеспечив связь между указанными двумя таблицами.
Если таблицы и запросы объединены, и из обеих таблиц или запросов в бланк запроса были добавлены поля в режиме конструктора запроса, то по умолчанию запрос производит проверку на наличие в объединенных полях соответствующих значений. (В терминологии баз данных это называется внутреннее объединение.) Если соответствующие записи обнаружены, то они объединяются и отображаются в результатах запроса как одна запись. Если таблицы или запросы не содержат соответствующих записей, то в результатах запроса ничего не отображено. Если необходимо выделить все записи таблицы или запроса, не зависимо от того, содержит или вторая таблица или запрос соответствующие им записи, нужно изменить тип объединения.
Если требуется выделить записи, основанные на значении из объединенного поля, которое больше, меньше, не равно, равно, больше или равно или меньше или равно значению из другого объединенного поля, необходимо в режиме SQL создать инструкцию SQL.
Примечание. При создании запроса на несколько таблиц, пользователь может иметь или не иметь возможность обновления данных.