Настольная СУБД Access 2002




Глава 4. Отбор и сортировка записей с помощью запросов


    Глава 4. Отбор и сортировка записей с помощью запросов
    Глава 4. Отбор и сортировка записей с помощью запросов Запросы и фильтры Создание простого запроса с помощью Мастера запросов Создание и изменение запроса с помощью Конструктора запросов Создание...
    Отбор и сортировка записей с помощью запросов
    Одним из семи стандартных объектов Microsoft Access является запрос. Запросы используются для просмотра, анализа и изменения данных в одной или нескольких таблицах. Например, можно использовать за...
    Запросы с параметрами
    Запросы с параметрами Запрос в Access является объектом, который сохраняется в файле базы данных и может многократно повторяться. Все запросы, которые мы демонстрировали до сих пор, содержали конк...
    Рис. 4.31. Диалоговое окно Параметры запроса
    Рис. 4.31. Диалоговое окно Параметры запроса В столбец Параметр (Parameter) нужно ввести название параметра точно так, как он определен в бланке запроса (легче всего это сделать путем копирования...
    Рис. 4.32. Диалоговое окно Введите значение параметра
    Рис. 4.32. Диалоговое окно Введите значение параметра...
    Рис. 4.33. Результат выполнения запроса с параметром
    Рис. 4.33. Результат выполнения запроса с параметром Совет При использовании запроса с параметрами делайте понятными их имена, т . к. именно они будут выводиться в диалоговом окне для пользователя...
    Создание запроса из фильтра
    Еще одним способом создания запроса является сохранение фильтра в виде запроса. Выше мы говорили, что фильтр используется при просмотре таблицы для отбора нужных записей. Если вы создали достаточн...
    Рис. 4.34. Сохранение фильтра в виде запроса
    Рис. 4.34. Сохранение фильтра в виде запроса Сохраненный фильтр может быть легко использован в дальнейшем, приием двумя способами. Можно, снова открыв таблицу Клиенты (Customers), установить сохра...
    Рис. 4.35. Диалоговое окно Применяемый фильтр
    Рис. 4.35. Диалоговое окно Применяемый фильтр Замечание Обратите внимание, что в списке фильтров не присутствуют другие запросы, а присутствует только фильтр, сохраненный как запрос. Выполнить зап...
    Рис. 4.36. Запрос "Менеджеры...
    Рис. 4.36. Запрос Менеджеры по продажам в режиме Конструктора...
    Рис. 4.37. Запрос "Менеджеры...
    Рис. 4.37. Запрос Менеджеры по продажам в режиме SQL В виде запроса можно также сохранить так называемый расширенный фильтр. Расширенный фильтр используется в том случае, если требуется задать сло...
    Рис. 4.38. Окно расширенного фильтра
    Рис. 4.38. Окно расширенного фильтра Окно расширенного фильтра действительно очень похоже на окно Конструктора запросов, однако панель инструментов очень сильно отличается от панели инструментов К...
    Выполнение запроса Чтобы посмотреть...
    В окне базы данных на панели объектов выбрать ярлык Запросы (Queries). Выделить нужный запрос в списке запросов и нажать на кнопку Открыть (Open) или дважды щелкнуть левой кнопкой мыши на нужном з...
    Изменение данных в результирующем множестве запроса
    Когда результат запроса отображается в виде таблицы, возникает желание не только просматривать, но и изменять данные в этой таблице. Поскольку эта таблица является виртуальной, на самом деле редак...
    Печать результатов запроса
    Печать результатов запроса Результаты запроса можно не только посмотреть на экране, но и напечатать. Сделать это можно несколькими способами: Открыть запрос в режиме Таблицы и нажать кнопку Печать...
    Рис. 4.39. Диалоговое окно Печать
    Рис. 4.39. Диалоговое окно Печать Настройка параметров печати при печати запроса выполняется так же, как и при печати обычной таблицы (см. разд. Работа с таблицамигл. 2). Совет Перед выводом запро...
    Передача результатов запроса в другие приложения
    В Microsoft Access имеются возможности быстрой передачи результатов запросов в другие приложения Microsoft Office. Рассмотрим эти возможности. Существуют четыре способа использования данных Micros...
    Рис. 4.40. Окно слияния с документами Word
    Рис. 4.40. Окно слияния с документами Word Для того чтобы осуществить экспорт запроса в файл данных составного документа Microsoft Word, необходимо: В окне базы данных выбрать имя экспортируемого...
    Рис. 4.41. Текстовый файл, полученный путем экспорта запроса
    Рис. 4.41. Текстовый файл, полученный путем экспорта запроса...
    Рис. 4.42. Файл формата RTF, полученный...
    Рис. 4.42. Файл формата RTF, полученный путем экспорта запроса Если вы хотите экспортировать запрос в документ Word и сразу увидеть результат операции экспорта, используйте команду меню Сервис, Св...
    Рис. 4.43. Экспорт запроса в MS Excel
    Рис. 4.43. Экспорт запроса в MS Excel Запрос можно преобразовать в любой из форматов, в который экспортируются данные из таблиц Access, и присоединить к сообщению электронной почты. Для этого необ...
    Рис. 4.44. Диалоговое окно Отправка по почте
    Рис. 4.44. Диалоговое окно Отправка по почте Microsoft Access открывает новое почтовое сообщение и присоединяет к нему объект в указанном формате (рис. 4.45). Рис. 4.45. Сообщение Outlook с присое...
    Использование выражений в запросах
    При работе с объектами Access очень широко -используются выражения. Примеры простых выражений приводились ранее, например при вводе условий на значение поля в таблице (см. Работа с таблицами гл. 2...
    Выражения в Access
    Выражения в Access Каждое выражение может содержать один или несколько операторов и одну или несколько констант, идентификаторов или функций. Выражение может быть сколь угодно сложным. Константы —...
    Арифметические операторы
    Арифметические операторы Арифметические операторы, как следует из названия, выполняют сложение, вычитание, умножение и деление. Арифметические операторы оперируют только с числовыми значениями и д...
    Таблица 4.2. Арифметические операторы
    Таблица 4.2. Арифметические операторы Оператор Пример ...
    Операторы присваивания и сравнения
    Операторы присваивания и сравнения Обычно в качестве оператора присваивания значения объекту, переменной или константе используется знак равенства (=). Например, выражение =Now() может присваивать...
    Таблица 4.3. Операторы сравнения
    Таблица 4.3. Операторы сравнения Оператор ...
    Запросы и фильтры
    Запрос на выборку содержит условия отбора данных и возвращает выборку, соответствующую указанным условиям, без изменения возвращаемых данных. В Microsoft Access существует также понятие фильтра, к...
    Логические операторы Логические...
    Логические операторы Логические (булевы) операторы используются для объединения результатов двух или более выражений сравнения в единое целое: And — конъюнкции (логического И); Or — дизъюнкции (ло...
    Таблица 4.4. Зависимость значения...
    Таблица 4.4. Зависимость значения логических операторов от значения операндов ...
    Таблица 4.5. Значения оператора Imp с Null-операндами
    Таблица 4.5. Значения оператора Imp с Null-операндами ...
    Таблица 4.6. Значения логических...
    Таблица 4.6. Значения логических операторов для однобитовых операндов ...
    Операторы слияния строковых значений (конкатенации)
    Операторы слияния строковых значений (конкатенации) Стандартный значок оператора конкатенации SQL, амперсант (), является более предпочтительным, чем значок плюса (+), хотя оба они приводят к один...
    Операторы идентификации
    Операторы идентификации Операторы идентификации применяются в качестве разделителей в ссылках на объекты (оператор !), их методы или свойства (оператор .): КлассОбъекта!ИмяОбъекта КлассОбъекта!Имя...
    Операторы сравнения с образцом
    Операторы сравнения с образцом Остальные операторы Access (табл. 4.7) упрощают создание выражений для выборки записей в запросах и относятся к операторам сравнения с образцом. Эти операторы возвра...
    Таблица 4.7. Другие операторы...
    Таблица 4.7. Другие операторы, используемые в выражениях Access Оператор Пример ...
    Идентификаторы объектов
    Идентификаторы объектов Любой объект Access имеет имя, по которому его можно однозначно идентифицировать в некоторой системе объектов. Кроме обозначения коротким именем объекта, идентификатор можн...
    Константы
    Константы В этом разделе описываются константы в их явном представлении. Кроме явного представления константы могут быть именованными. Именованные константы создаются пользователем и используются...
    Функции
    Функции Функция так же, как и идентификатор, используется для возвращения значения в точку вызова. Значение, возвращаемое функцией, определяется ее типом, например функция NOW () возвращает дату и...
    Создание выражений с помощью Построителя выражений
    Создание выражений с помощью Построителя выражений Ввод выражений возможен в. среде Access не только вручную, но и с помощью удобного инструмента, называемого Построитель выражений (Expression Bui...
    Рис. 4.46. Диалоговое окно Построитель выражений
    Рис. 4.46. Диалоговое окно Построитель выражений Нажмите кнопку ОК для возврата в бланк запроса. В поле, где расположен курсор, Построитель выражений помещает построенное выражение (рис. 4.47)....
    Рис. 4.47. Бланк запроса с выражением...
    Рис. 4.47. Бланк запроса с выражением, созданным Построителем выражений Для отображения результатов выполненного запроса нажмите кнопку Запуск (Open) на панели инструментов (рис. 4.48). При желани...
    Рис. 4.48. Запрос, созданный в...
    Рис. 4.48. Запрос, созданный в результате добавления условия отбора Повторите шаги со 2 по 7 для заполнения всех условий отбора, которые хотите попробовать. Если вы совершите ошибку в синтаксисе в...
    Выводы
    Выводы В данной главе мы рассмотрели, как можно создавать запросы, которые обеспечивают выборку данных из баз данных Access. Познакомились с применением Мастера запросов и Конструктора запросов пр...
    Создание простого запроса с помощью Мастера запросов
    Создание простого запроса с помощью Мастера запросов Наиболее просто создается запрос при помощи Мастера запросов. Чтобы создать простой запрос с помощью Мастера запросов, необходимо: В окне базы...
    Рис. 4.1. Окно создания нового запроса
    Рис. 4.1. Окно создания нового запроса...
    Рис. 4.2. Первое диалоговое окно Мастера простых запросов
    Рис. 4.2. Первое диалоговое окно Мастера простых запросов Нажать кнопку Далее (Next). Следующее диалоговое окно будет последним. В нем нужно ввести имя создаваемого запроса (рис. 4.3) в поле Задай...
    Рис. 4.3. Окно Мастера простых запросов на втором шаге
    Рис. 4.3. Окно Мастера простых запросов на втором шаге По окончании работы Мастера простых запросов в зависимости от выбора способа дальнейшей работы с запросом откроется или окно запроса в режиме...
    Создание и изменение запроса с помощью Конструктора запросов
    Для изменения уже существующих запросов и для создания новых запросов используется Конструктор запросов. Для того чтобы открыть запрос в режиме Конструктора, выделите в списке один из существующих...
    Рис. 4.5. Запрос "Сотрудники...
    Рис. 4.5. Запрос Сотрудники Запрос в режиме Конструктора запросов...
    Таблица 4.1. Описание кнопок на...
    Таблица 4.1. Описание кнопок на панели инструментов Конструктор запросов Кнопка ...
    Рис. 4.7. Окно Добавление таблицы Конструктора запросов
    Рис. 4.7. Окно Добавление таблицы Конструктора запросов После добавления всех необходимых таблиц нажать кнопку Закрыть (Close) в окне Добавление таблицы (Show Table). Все выбранные таблицы оказыва...
    Рис. 4.8. Запрос по нескольким связанным таблицам
    Рис. 4.8. Запрос по нескольким связанным таблицам Внимание Иногда Конструктор устанавливает лишние связи, основываясь только на именах и типах полей. Это может привести к некорректным результатам...
    Рис. 4.9. Пример отбора полей...
    Рис. 4.9. Пример отбора полей для нового запроса в режиме Конструктора...
    Рис. 4.10. Вид окна Конструктора...
    Рис. 4.10. Вид окна Конструктора при выборе всех полей из таблицы Чтобы добавить в запрос еще одну таблицу или другой запрос, необходимо: Нажать кнопку Добавить таблицу (Show Table) на панели инст...
    Рис. 4.11. Выбор полей запроса из раскрывающегося списка
    Рис. 4.11. Выбор полей запроса из раскрывающегося списка В окне Добавление таблицы (Show Table) выбрать вкладку, содержащую требуемые объекты. Замечание Если нужная таблица находится в другой базе...
    Рис. 4.12. Изменение названия поля в запросе
    Рис. 4.12. Изменение названия поля в запросе Совет Чтобы использовать новое имя поля только в заголовках столбцов в режиме таблицы или как подпись полей в формах и отчетах, следует задать для этог...
    Рис. 4.13. Задание критериев отбора записей в запросе
    Рис. 4.13. Задание критериев отбора записей в запросе Если критерий отбора очень сложный, можно вставлять дополнительные строки условий. Для этого необходимо: Выделить строку, которая должна оказа...
    Рис. 4.14. Установка порядка сортировки записей в запросе
    Рис. 4.14. Установка порядка сортировки записей в запросе...
    Рис. 4.15. Запрос в режиме Конструктора
    Рис. 4.15. Запрос в режиме Конструктора Если вы хотите очистить бланк запроса для того, чтобы создать новый, нужно выполнить команду Правка, Очистить бланк (Edit, Clear Grid). После формирования б...
    Рис. 4.16. Диалоговое окно Сохранение
    Рис. 4.16. Диалоговое окно Сохранение Результат выполнения запроса, созданного в режиме Конструктора, приведен на рис. 4.17. Рис. 4.17. Результат выполнения запроса, созданного в режиме Конструкто...
    Создание вычисляемых полей в запросах
    Создание запросов интересно не только тем, что вы можете в виде одной таблицы представить данные из нескольких связанных таблиц и отобрать нужные записи из этих таблиц. Вы можете создавать столбцы...
    Рис. 4.18. Вычисляемое поле в запросе
    Рис. 4.18. Вычисляемое поле в запросе Совет Если выражение длинное, его неудобно писать в строке Поле (Field). Нажмите комбинацию клавиш Shift+F2. Появится диалоговое окно Область ввода (Zoom) (ри...
    Рис. 4.19. Диалоговое окно Область ввода
    Рис. 4.19. Диалоговое окно Область ввода Вы можете создать сколько угодно вычисляемых столбцов в запросе, используя при этом сколь угодно сложные выражения. С другими примерами создания таких стол...
    Виды соединений В зависимости...
    Наиболее распространенным является внутреннее соединение (эквисоедшение). Если таблицы связаны отношением один-ко-многим, соединения основываются на уникальном значении поля первичного ключа в одн...
    Внутреннее соединение
    Внутреннее соединение Внутреннее соединение двух таблиц по одному полю в реляционной базе данных строится на основе отношения один-ко-многим. Примером может служить демонстрационная база данных Бо...
    Рис. 4.20. Окно Конструктора запроса...
    Рис. 4.20. Окно Конструктора запроса с изображением соединения полей таблиц Выберите поле Марка (ProductName) в таблице Товары (Products) и перетащите его в строку Поле (Field) первого столбца бла...
    Рис. 4.21. Бланк запроса с заполненными...
    Рис. 4.21. Бланк запроса с заполненными полями в режиме Конструктора Нажмите кнопку Запуск (Run) либо выберите Режим таблицы (Query View) в списке кнопки Вид (View) на панели инструментов для отоб...
    Рис. 4.22. Результирующее множество запроса
    Рис. 4.22. Результирующее множество запроса После выполнения запроса Microsoft Access выводит на экран результирующее множество, записи которого упорядочены по значению первичного ключа (так же, к...
    Рис. 4.23. Результат запроса с...
    Рис. 4.23. Результат запроса с сортировкой по убывающей цене товара Аналогично создаются запросы, в которых участвует несколько связанных таблиц, образующих цепочку. При этом в результат запроса м...
    Рис. 4.24. Соединение косвенно связанных записей
    Рис. 4.24. Соединение косвенно связанных записей...
    Рис. 4.25. Эквивалентная запросу инструкция SQL
    Рис. 4.25. Эквивалентная запросу инструкция SQL Запросы, соединяющие косвенно связанные записи, часто используются при анализе данных с помощью статистических функций SQL или перекрестных запросов...
    Внешнее соединение
    Внешнее соединение Внешние соединения бывают левыми или правыми. Запрос, в котором участвуют таблицы с левым внешним соединением (LEFT JOIN или *= в SQL), выводит все записи таблицы один, в незави...
    Рис. 4.26 . Диалоговое окно Параметры объединения
    Рис. 4.26 . Диалоговое окно Параметры объединения Замечание Традиционно термин JOIN, который применяется к операции соединения таблиц, переводился как объединение, хотя на самом деле операция объе...
    Рис. 4.27. Отображение левого...
    Рис. 4.27. Отображение левого внешнего объединения в окне Конструктора запросов Установите сортировку по возрастанию для поля КодЗаказа (Orderld) во втором столбце бланка запроса. Нажмите на панел...
    Рис. 4.28. Результат выполнения...
    Рис. 4.28. Результат выполнения запроса с левым внешним соединением Сохраните запрос под именем Холодные клиенты. Он нам потребуется в дальнейшем. Запросы с правым внешним соединением используются...
    Рекурсивное соединение
    Рекурсивное соединение В качестве примера рекурсивного соединения рассмотрим запрос к базе данных Борей (Northwind), в котором выводятся заказы клиентов, принятые и выполненные в один день. Для со...
    Рис. 4.29. Запрос с рекурсивным соединением
    Рис. 4.29. Запрос с рекурсивным соединением При использовании рекурсивных соединений требуется задать вывод только уникальных значений. Дважды щелкните по свободной области верхней части окна запр...
    Рис. 4.30. Диалоговое окно Свойства запроса
    Рис. 4.30. Диалоговое окно Свойства запроса Рекурсивные соединения крайне редко используются в приложениях Access благодаря возможности задания ограничений значений и обеспечению целостности данны...









Начало