Создание баз данных Access: Учебное пособие, страница 13

  Чтобы создать запрос с параметром, надо в бланке запроса в строку Условия отбора вместо конкретного значения ввести приглашение пользователю опреде­лить условия отбора. Строка приглашения должна быть заключена в квадратные скобки. Текст, заключенный в квадратные скобки, Access рассматривает как имя параметра. Перед выполнением запроса выводится диалоговое окно с фразой-приглашением и полем для определения конкретного значения параметра. Вводить значение параметра надо в том виде, в котором это значение хранится в таблице БД. Нельзя вводить подстановочные значения.

   В запросе можно задать несколько параметров; при этом имя каждого из них должно быть уникальным и информативным. При выполнении запроса значения параметров вводятся поочередно. Используя имена параметров, связанные опера­торами отношения и логическими операторами, можно определить сложные усло­вия отбора

   Для параметров запроса можно указать тип данных для проверки введенного значения и предотвращения ошибок ввода. По умолчанию Access назначает пара­метрам запроса текстовый тип данных. Изменить тип данных параметра можно, выбрав команду Запрос / Параметрыи определив нужный тип данных в открыв­шемся окне Параметры запроса.

   В Microsoft Access можно создавать так называемые перекрестные запросы. В перекрестном запросе отображаются результаты статистических расчетов (сум­мы, количество записей, средние значения), выполненных по данным из одного поля таблицы. Эти результаты группируются по двум наборам данных, один из которых расположен в левом столбце таблицы, а второй - в верхней строке. Ре­зультат выполнения такого запроса напоминает электронную таблицу.

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

В итоговой таблице, сформированной в ответ на запрос, имена клиентов будут располагаться слева сверху вниз (по стро­кам), а названия разделов - вверху слева направо (по столбцам). Кроме того, в таблице появится столбец, содержащий суммарное количество покупок для каж­дого клиента. Для создания такого запроса придется объединить данные из не­скольких таблиц, поэтому вначале придется создать запрос, объединяющий дан­ные, а потом создать перекрестный запрос, основанный на объединяющем запросе. Объединяющий запрос должен сформировать таблицу с полями КодКлиента (таб­лица ПОКУПКИ), Раздел (таблица РАЗДЕЛЫ), Количество (таблица ПОКУПКИ).

    Перекрестный запрос проще всего создать при помощи Мастера запросов. Для вызова Мастера надо в окне БД для объекта Запросы нажать кнопку Создать и выбрать из списка строку Перекрестный запрос. На первом шаге работы Масте­ра надо установить флажок Запросы и выбрать имя объединяющего запроса. На следующих шагах следует выбрать в качестве заголовков строк поле КодКлиента, для заголовков столбцов поле Разделы, в списке функций Сумма, и определить имя запроса. Готовый запрос можно просмотреть в режиме таблицы.

   •      Создайте запрос, формирующий список романов и художественной литературы. С помощью свойства Подписьопределите имена выводимых полей запроса: Название, Жанр, Цена. Запрос сохраните под именем Романы и художе­ственная литература.

   •     Создайте запрос с параметром, позволяющий для указанного клиента сформировать список, содержащий названия купленных им книг, цены книг, ко­личество купленных экземпляров и стоимость каждой покупки. Определите имена выводимых полей: Покупатель, Книга, Количество, Цена, Стоимость покупки, ус­тановив соответствующие значения свойства Подпись.Сохраните запрос под име­нем Стоимость покупок одного клиента.

   •     Создайте запрос, позволяющий для каждой покупки, совершенной клиентом, выводить следующие сведения: Покупатель (имя клиента), Книга (на­звание книги), Автор (фамилия и имя автора), Заметки (сведения об авторе). Для полей запроса установите необходимые значения свойства Подпись.Сохраните запрос под именем Сведения об авторах купленных книг.

   •     Создайте  итоговый  запрос,   подсчитывающий  общее  количество книг, купленных каждым из клиентов, и общую стоимость всех сделанных им по­купок. Определите имена выводимых полей: Имя клиента. Всего книг, Общая сумма. Сохраните запрос под именем Итоговые суммы.

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

Запросы на изменение и их использование

   Запрос на изменение - это запрос, который за одну операцию вносит изме­нения в несколько записей. Существует четыре типа запросов на изменение: на обновление, на добавление и удаление записей, а также на создание таблицы. Пе­ред созданием запроса на изменение надо создать запрос на выборку с условием отбора, позволяющим найти все подлежащие изменению записи. После отбора нужных записей запрос на выборку преобразуется в запрос на изменение. По умолчанию Access всегда создает запрос на выборку.

   Запрос на обновление записей вносит общие изменения в группу записей одной или нескольких таблиц.

   После создания запроса на выборку записей, подлежащих обновлению, ре­комендуется просмотреть отобранные записи в режиме Таблицы. Затем в режиме Конструктора надо выбрать команду меню Запрос / Обновление или в раскры­вающемся списке кнопки Тип запроса выбрать пункт Обновление. Откроется окно Запрос на обновление, в бланке которого появится строка Обновление. Эта строка используется для ввода нового значения поля в отобранные записи. В эту строку может быть введено любое правильно построенное выражение, содержащее имена одного или нескольких полей из исходных таблиц.