СОЗДАНИЕ РАЗЛИЧНЫХ ЗАПРОСОВ В MICROSOFT ACCESS
Одним из основных элементов взаимодействия пользователя с базой данных является запрос.
В хорошо структурированной базе данных сведения, которые требуется представить с использованием формы или отчета, зачастую хранятся в разных таблицах. Запрос может извлечь информацию из разных таблиц и собрать ее для отображения в виде формы или отчета. Запрос может представлять собой обращение к данным для получения информации из базы данных или выполнения действий с данными. Запрос можно использовать для получения ответа на простой вопрос, выполнения расчетов, объединения данных из разных таблиц, а также для добавления, изменения или удаления данных в таблице. Это очень гибкий инструмент: существует много типов запросов, и каждый тип создается с учетом задачи.
Запросы могут выполнять множество функций в базе данных. Одна из их основных функций – находить информацию в таблицах. Нужная информация обычно содержится в нескольких таблицах, но, если использовать запросы, ее можно просматривать в одной. Кроме того, запросы дают возможность фильтровать данные (для этого задаются критерии поиска), чтобы отображались только нужные записи.
Запросы упрощают просмотр, добавление, удаление или изменение данных в базе данных Access. Среди других целей использования запросов можно отметить:
-
быстрый поиск определенных данных путем фильтрации с применением определенных критериев (условий);
-
вычисление или сведение данных;
-
автоматизированное управление данными, например, регулярный просмотр актуальных данных.
Используются и так называемые "обновляемые" запросы, которые дают возможность редактировать данные, найденные в основных таблицах. При работе с обновляемым запросом помните, что правки вносятся в основные таблицы, а не только в таблицу запроса.
В программе можно применять различные типы запросов: на выборку, с параметрами, перекрестные, на изменение и другие. У запросов два основных вида:
Большинство запросов, используемых в базах данных, являются запросами на выборку. Запрос на выборки просто извлекает данные и делает их доступными для использования. Вы можете просмотреть результаты запроса на экране, распечатать его или скопировать в буфер обмена. Вы также можете использовать выходные данные запроса в качестве источника записей для формы или отчета.
Запрос на изменение, как следует из названия, выполняет задачу с данными. С помощью запросов на изменения можно создавать новые таблицы, добавлять данные в существующие таблицы, обновлять или удалять данные.
Запросы в программе можно создавать с помощью Мастера запросов или Конструктора запросов (меню Создание, вкладка Запросы).
В режиме Конструктора окно запроса состоит из двух областей (рис. 1). Нижняя область разбита на столбцы – по одному столбцу на каждое поле, включаемое в запрос. В столбцах представлены: имя поля и таблицы, из которой выбираем данное поле, флажок, указывающий наличие сортировки по данному полю, флажок вывода данного поля на экран при просмотре результата, строка условия отбора (логического выражения). В верхней области окна запроса представлены таблицы, включённые в запрос и связи между этими таблицами.
Рисунок 1
Создание запроса с параметром.
Откройте простой запрос на выборку в режиме Конструктора. В строке Условие отбора для поля (рис. 2), в котором хотите использовать параметр, введите в квадратных скобках текст подсказки (например [Укажите Фамилию]). Подсказка появится на экране во время просмотра запроса в виде информационной панели, пользователь должен будет ввести нужную информацию в предоставленное для этого поле. Запрос с параметром нужно сохранить под новым именем (меню Файл – Сохранить объект как – создаётся копия запроса).
Рисунок 2
Теперь перейдём непосредственно к практике.
Зайдите на вкладку «Создание» и нажмите кнопку «Конструктор запросов».
Создание простого запроса на выборку. В открывшемся окне выберите одну или несколько таблиц, из которых необходимо выбрать данные. Нажав кнопку «Выполнить» (рис. 3), вы получите всю информацию из выбранных вами таблиц.
Создание запроса с параметром. Для более конкретного отбора перейдите на вкладку «Конструктор» и введите нужное слово или число в поле «Условие отбора:». Например, вы хотите получить список всех сотрудников 1980 года рождения. Для этого пропишите в строке «Условие отбора:» 1980 в колонке «Дата рождения» и нажмите кнопку «Выполнить». Программа моментально выдаст вам результат. Для удобства вы можете сохранить созданный запрос, чтобы пользоваться им в дальнейшем. Воспользуйтесь комбинацией клавиш Ctrl+S и введите название в соответствующем поле, а после нажмите «ОК».
Рисунок 3
Чтобы посчитать значения в столбце, вы можете использовать так называемые групповые операции (рис. 4). Для этого на вкладке «Конструктор» кликните по кнопке «Итоги».
В появившейся строке «Группировка» выберите функцию «Count», позволяющую сложить все ненулевые значения. Чтобы в названии колонки не выводилось слово «Count», в строке «Поле» введите название перед тем, что было указано ранее. Сохранение выполняется точно также при помощи комбинации Ctrl+S.
Рисунок 4
Теперь создадим параметрический запрос. Он позволяет делать выборку по введённому параметру. Например, по заданной дате. Открыв нужную базу данных, пропишите (без кавычек) в соответствующем столбце «[Укажите дату]» (рис. 2). Квадратные скобки обязательны. В появившемся окне введите нужную дату. После этого программа автоматически произведёт выборку по введённой вами дате. Вы можете поставить знаки «» (больше) и «
Примечание: В предложении ввести параметр нельзя использовать точку (.) или восклицательный знак (!).
Можно также указать, данные какого типа разрешается вводить в качестве значения параметра (приложение). Тип данных можно настроить для любого параметра, но особенно важно сделать это для числовых и денежных данных, а также данных о дате и времени. Когда для параметра указан тип данных, пользователи получают более понятные сообщения об ошибках в случае ввода данных неправильного типа, например, ввода текста, когда ожидаются денежные данные.
Если параметр настроен таким образом, чтобы принимать текстовые данные, любое введенное значение интерпретируется как текст и сообщение об ошибке не отображается.
Как создать перекрёстное обращение? Достаточно найти на панели инструментов кнопку «Перекрёстный» и кликнуть по ней.
После этого в пункте «Перекрёстная таблица» выберите в первой ячейке «Заголовки строк», во второй «Заголовки столбцов», а в третьей «Значение» (рис. 5).
Затем вы можете посчитать значения, использовав уже упомянутую выше функцию «Count». Обратите внимание, что если вы укажете во второй ячейке «Заголовки строк», так же, как в первой, вместо «Заголовки столбцов», то ничего работать не будет. Обязательно учитывайте это.
Рисунок 5
Также вы можете сделать обращение на создание таблицы. Как это делается? Достаточно открыть базы данных, с которыми вы работаете, затем заполнить ячейку «Условие отбора» и кликнуть по кнопке «Создание таблицы» (рис. 6).
Примечание: Если под лентой вы видите сообщение о включении базы данных, нажмите кнопку "Включить содержимое". Если база данных уже находится в надежном расположении, вы не увидите панели сообщений.
Не забывайте нажимать «Выполнить». На основе заданных вами параметров Microsoft Access построит новую таблицу. Например, список всех сотрудников с их контактными данными по профессии «Бухгалтер».
Рисунок 6
Приложение
Чтобы указать тип данных для параметра в запросе, выполните процедуру, описанную ниже.
-
Когда запрос открыт в конструкторе, на вкладке Конструктор в группе Показать или скрыть нажмите кнопку Параметры.
-
В диалоговом окне Параметры запроса в столбце Параметр введите текст запроса на ввод значения для каждого параметра, для которого требуется указать тип данных. Убедитесь, что каждый из параметров соответствует запросу, который используется в строке Условие отбора в бланке запроса.
-
В столбце Тип данных выберите тип данных для каждого параметра.
Выполнение расчетов на основе данных
Обычно таблицы не используются для хранения вычисляемых значений, таких как суммы, даже если они основаны на данных в одной базе данных, так как они могут быть устаревшими, если значения в них основаны на изменениях. Например, не стоит хранить чей-либо возраст в таблице, так как каждый год вам нужно обновлять значение. вы сохраняете дату рождения человека, а затем используете запрос для расчета его возраста.
Например, существует база данных с информацией о товарах, которые вы хотите продать. Она содержит таблицу под названием "Сведения о заказе", в которой находится информация о товарах, например, цена и количество каждого товара. Можно вычислить промежуточные суммы с помощью запроса, который умножает количество каждого товара на цену за единицу этого товара, количество каждого товара на цену за единицу этого товара и скидку этого товара, а затем вычитает общую скидку из общей цены. Если в предыдущем примере была создана база данных, откройте ее и выполните следующие действия.
1. На вкладке "Создание" нажмите кнопку "Конструктор запросов".
2. На вкладке "Таблицы" дважды щелкните "Сведения о заказе".
3. В таблице "Сведения о заказе" дважды щелкните Код товара, чтобы добавить это поле в первый столбец бланка запроса.
4. Во втором столбце бланка щелкните правой кнопкой мыши строку Поле, а затем выберите в контекстном меню команду Область ввода.
5. В диалоговом окне Область ввода введите или вставьте следующее выражение: Промежуточный итог: ([Количество]*[Цена за единицу])-([Количество]*[Цена за единицу]*[Скидка])
6. Нажмите кнопку ОК.
7. На вкладке Конструктор нажмите кнопку Выполнить. Происходит выполнение запроса, а затем отображается список товаров с промежуточными суммами для каждого заказа.
8. Нажмите клавиши CTRL+S, чтобы сохранить запрос, и назовите его Промежуточные суммы для товаров.
Создание запроса на обновление
Для изменения данных в таблицах, а также для ввода условий, указывающих, какие строки следует обновить, можно использовать запрос на обновление. Запрос на обновление позволяет просмотреть обновленные данные перед выполнением обновления.
Важно: Запрос на изменение невозможно отменить. Возможно, перед обновлением следует создать резервные копии всех таблиц, которые будут обновлены запросом на обновление.
В предыдущем примере строки были указаны в таблице "Заказы в Чикаго". В таблице "Заказы в Чикаго" поле "ИД товара" содержит числовой ИД товара. Чтобы сделать данные отчетами более полезными, замените их их наименованиями продуктов. Для этого сделайте следующее:
1. Откройте таблицу "Заказы в Ростове" в конструкторе.
2. В строке "Код товара" измените тип данных Числовой на Текстовый.
3. Сохраните и закройте таблицу "Заказы в Ростове".
4. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
5. Дважды щелкните "Заказы в Чикаго" и "Товары".
6. На вкладке Конструктор в группе Тип запроса нажмите кнопку Обновить.
7. В бланке больше не будут отображаться строки Сортировка и Показать и появится строка Обновление.
8. В таблице Заказы в Ростове дважды щелкните элемент Код товара, чтобы добавить это поле в бланк.
9. В бланке в строке Обновление столбца Код товара введите или вставьте следующую строку: [Товары].[Наименование]
Совет: Запрос на обновление можно использовать для удаления значений полей; для этого используется пустая строка ("") или значение NULL в строке Обновление.
10. В строке Условие отбора введите или вставьте следующую строку: [Код продукта] Like ([Товары].[Код])
11. Можно узнать, какие значения будут изменены запросом на обновление, просмотрев запрос в режиме таблицы.
12. На вкладке Конструктор выберите Режим Режим таблицы. Запрос возвращает список кодов товаров, которые будут обновлены.
13. На вкладке Конструктор нажмите кнопку Выполнить.
При открытии таблицы "Заказы в Ростове" можно будет увидеть, что числовые значения в поле "Код товара" заменены наименованиями из таблицы "Товары".