Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа ALL.doc
Скачиваний:
61
Добавлен:
11.03.2015
Размер:
889.34 Кб
Скачать

Лабораторная работа №3 Создание запросов в среде ms Access

Цель работы:

Изучить процесс проектирования запросов с помощью стандартной панели инструментов окна запроса в режиме “Конструктора”; научиться создавать разные виды запросов, работать с запросами.

Содержание отчета:

  1. Титульный лист.

  2. Цель работы.

  3. Виды сконструированных запросов.

  4. Краткие ответы на контрольные вопросы.

  5. Выводы.

Краткие теоретические сведения

Запросы

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

Благодаря запросам, можно выполнить сортировку или вычислить выражения. При выполнении запроса MS Access считывает данные из таблиц и отображает результат выполнения в режиме таблицы. При этом следует учитывать, что результат выполнения запроса не сохраняется. Данные всегда хранятся в таблицах. В запросе MS Access хранит только инструкции о том, как должны быть организованы данные в результате выполнения запроса. Для некоторых запросов можно внести изменения в результат запроса, отображаемый в режиме таблицы. Эти изменения отразятся и в исходных таблицах. На основании запроса можно разработать форму или отчет.

По функциональному признаку запросы можно разделить на:

  1. запросы выбора (результат существует в виде таблицы до закрытия запроса)

  • простые

  • запросы с критериями поиска

  • с вычислениями

  • с параметрами (условия задаются при выполнении запроса в новом диалоговом окне)

  • итоговые

  • многотабличные

  • перекрестные (компактное отображение данных с объединением однотипной информации)

  1. запросы действия (приводят к изменениям данных в исходных таблицах или созданию новых таблиц, сохраненных как объект таблица)

  • на создание таблицы

  • на обновление

  • на добавление

  • на удаление

Запросы с критериями поиска

Для выборки данных из таблиц по определенному условию в MS Access используются запросы с критериями поиска. Предварительно задав условие отбора, результатом выполнения запроса будет набор данных, удовлетворяющих сформированному критерию.

Для составления запроса следует перейти в окно базы данных, выбрать пиктограмму “Запрос” и нажать кнопку “Создать", а затем кнопку “Новый запрос”. В следующем окне диалога следует выбрать одну из таблиц БД и нажать кнопку “Добавить”, MS Access поместит в окно запроса список полей указанной таблицы. Теперь можно выбрать одно или несколько полей и отбуксировать их в бланк запроса QBE (рис. 3.1).

Рис. 3.1. Запрос с критериями поиска в режиме конструктора

В строке "Условие отбора” можно ввести теперь критерии выбора. Для обозначения произвольного количества символов используйте в качестве символа-заменителя звездочку (*), а для обозначения одного произвольного символа знак вопроса (?). Сформулируйте критерии запроса. Например, если для текстового поля будет задан только критерий “А*”, то в результате выполнения запроса будут отображены только те записи, текстовое поле которых начинается с буквы “А” (или “а”).

Если требуется отыскать комбинацию нескольких значений, необходимо ввести их в строку “Условие отбора”, употребляя в качестве разделителя логические операторы AND и OR.

Запросы с параметрами

Не всегда можно решить на этапе создания запроса, какие именно значения должен отыскивать MS Access, а иногда требуется гибкое условие отбора, которое может изменяться в зависимости от текущей ситуации. Поэтому вместо условия отбора, непосредственно вводимого в бланк QBE, можно включить в запрос параметр, и в этом случае перед выполнением запроса MS Access каждый раз будет запрашивать конкретные условия отбора.

Чтобы установить параметр, необходимо ввести в строку “Условие отбора” имя или фразу, заключенную в квадратные скобки ([]). То, что заключено внутри квадратных скобок, MS Access рассматривает как имя параметра. Это имя выводится в диалоговом окне при выполнении запроса, поэтому разумно в качестве имени параметра использовать содержательную фразу.

В одном запросе можно задать несколько параметров; при этом имя каждого параметра должно быть уникальным и информативным.

По умолчанию MS Access преобразует введенные в запрос параметры в текстовый тип данных. Однако, так как текстовые поля нельзя сравнивать с полями дат, тип данных для параметров необходимо установить точно. Для этого выберите команду Запрос/Параметры из меню, в результате чего MS Access откроет окно диалога “Параметры запроса”. Введите параметр без квадратных скобок в диалоговое окно и выберите необходимый тип данных (рис.3.2).

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

Рис. 3.2. Запрос с параметрами в режиме конструктора

Вычисляемые поля в запросах

Существует возможность задать вычисления над любыми полями таблицы и сделать вычисляемое значение новым полем в наборе записей. Для этого используется множество встроенных в MS Access функций. Можно создать поле в запросе с использованием арифметических операций над полями таблиц, а можно также создать новое поле как результат конкатенации текстовых полей или символьных констант.

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

Выражение 1: [Поле1] <оператор>[Поле2]

В квадратные скобки заключаются только имена полей (рис.3.3.). MS Access автоматически использует “Выражение 1” в качестве имени вычисленного выражения. Это имя можно изменить на более содержательное.

При построении сложных выражений MS Access предлагает использовать утилиту, называемую “Построитель выражений”. Для перехода в “Построитель выражений” необходимо щелкнуть по пустому полю в бланке QBE, а затем – по кнопке “Построить” панели инструментов.

Рис. 3.3. Вычисляемые поля в запросах

Итоговые запросы

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

Рис. 3.4. Итоговые запросы в режиме конструктора

Для того чтобы составить итоговый запрос, находясь в режиме “Конструктора запроса”, следует выбрать пиктограмму “Групповые операции” или воспользоваться командой Вид/Групповые операции. В результате этого в бланке запроса появится строка “Групповая операция”. Затем для соответствующего поля из списка необходимо выбрать функцию “Группировка” (рис.3.4.).

Многотабличные запросы

Рассмотрим возможность организовать просмотр объединенных данных из нескольких связанных таблиц. Выбор данных из нескольких таблиц особенно полезно использовать при создании форм и отчетов.

Во-первых, откройте окно “Конструктора запроса” и добавьте таблицы, в которых содержится необходимая информация. Если ранее с помощью команды “Связи” была установлена связь между таблицами, то MS Access определит это автоматически. Эта связь будет отображена в виде линии, проведенной между полями таблиц. Если связь между таблицами отсутствует, вы должны ее установить.

Далее необходимо определить параметры связи. Выделите соединительную линию и выберите команду Вид/Параметры объединения. В результате откроется диалоговое окно, в котором предлагаются три опции для определения параметров связи.

После этого отбуксируйте в бланк запроса поля из главной и подчиненной таблицы (рис.3.5.).

Рис. 3.5. Многотабличные запросы в режиме конструктора

Перекрестные запросы

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

Представьте себе таблицу товаров, которая содержит три поля данных: “Тип”, “Поставщик” и “Цена”. Для каждой категории товаров требуется определить суммы цен товаров с указанием поставщика.

Поместите в окно “Конструктора запроса” таблицу “Товары”. Затем включите строку “Групповая операция”, выбрав команду Вид/Групповые операции. После этого отбуксируйте поле данных “Тип” в бланк запроса. Для этого поля выберите из списка значение “Группировка”. Во второй столбец бланка запроса отбуксируйте поле данных “Поставщик”. Для этого столбца также выберите значение “Группировка”. Последним в бланк запроса отбуксируйте поле “Цена”. Для этого поля выберите значение “Sum”.

При выполнении запроса его результат отображается в режиме таблицы, в первом столбце которой будут все типы товаров, во втором – для каждого типа будут приведены номера поставщиков, а в последнем столбце – суммы цен товара данного типа и данного поставщика.

Теперь необходимо итоговый запрос преобразовать в перекрестный запрос. Для этого выберите команду Запрос/Перекрестный. Выбор данной команды приводит к замене в бланке запроса строки “Вывод на экран” на новую строку “Перекрестная таблица”. Все остальные параметры остаются без изменения. Поле “Тип” исходной таблицы будет использовано в качестве заголовка строк. Поэтому из поля списка “Перекрестная таблица” выберите элемент “Заголовок строк”. Для столбца “Поставщик” выберите из списка “Перекрестная таблица” элемент “Заголовок столбцов”.

Сумму цен товаров необходимо поместить в ячейках перекрестной таблицы. Поэтому для этого поля из списка “Перекрестная таблица” следует выбрать элемент “Значение”.

Примечание: При создании перекрестной таблицы вы можете выбрать только одно поле в качестве содержимого таблицы и только одно поле в качестве заголовка столбцов. В качестве заголовков строк можно указать и несколько полей исходной таблицы.

Запросы на удаление

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

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

В режиме “Конструктора запроса” выберите таблицу, в которой позднее будет проводиться удаление. Затем определите критерии (рис.3.6.).

Лишь в том случае, если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать запрос на выборку в запрос на удаление. Для этого в строке меню выберите команду Запрос/Удаление.

Если выполнить запрос выбором пиктограммы “Выполнить”, MS Access не отобразит на экране результат выполнения запроса. Вместо него появится сообщение о том, сколько записей будет удалено в исходной таблице. Вы можете прервать процесс удаления нажатием кнопки “Отмена”.

Однако нажатие “OK” приводит к безвозвратному удалению записей, удовлетворяющих критериям запроса.

Рис. 3.6. Запрос на удаление в режиме конструктора

Запросы на обновление

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

Порядок выполнения работы

  1. Открыть базу данных, созданную на предыдущей практической работе и соответствующую вашему варианту задания (варианты заданий приведены в лабораторной работе №2).

  2. Спроектировать пять различных запросов на выборку информации по определенным критериям. Запросы должны быть как однотабличные, так и многотабличные.

  3. Создать запрос с вычисляемым полем.

  4. Создать итоговый запрос.

  5. Создать два перекрестных запроса.

  6. Создать запросы на модификацию данных.

  7. Подготовить отчет по работе.

Контрольные вопросы

  1. Что такое запрос и какие типы запросов поддерживает MS Access?

  2. Как задать параметры при создании запроса на выборку с параметрами?

  3. Что такое запрос-действие и какие бывают запросы-действия?

  4. Как можно добавить или удалить таблицу при конструировании запроса?

  5. Как определить, из каких таблиц взяты поля в шаблон вывода при конструировании запроса?

  6. Что такое перекрестный запрос и как он конструируется?

  7. Что такое SQL и как этот язык используется при формировании запросов?

  8. Можно ли вводить данные в таблицы через запросы, если можно, то в каких случаях, каковы ограничения, накладываемые на взаимосвязанные таблицы, на ввод данных через запросы в таблицы?

  9. Что такое поля группировки, можно ли использовать одновременно несколько полей группировки в одном запросе и каков смысл получаемого результата?

  10. Чем отличается запрос на выборку от запроса на создание таблицы?