Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дипломка2.doc
Скачиваний:
3
Добавлен:
07.11.2019
Размер:
837.63 Кб
Скачать

3.6. Выполнение запроса

Чтобы посмотреть результаты запроса, достаточно открыть его в режиме Таблицы. Для этого необходимо:

  1. В окне базы данных на панели объектов выбрать ярлык Запросы (Queries);

  2. Выделить нужный запрос в списке запросов и нажать на кнопку Открыть (Open) или дважды щелкнуть левой кнопкой мыши на нужном запросе.

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

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

Для выполнения запроса из режима Конструктора достаточно просто переключиться в Режим таблицы (Datasheet View) с помощью кнопки Вид (View) на панели инструментов, как мы это уже не раз делали, или с помощью команды Режим таблицы (Datasheet View) из меню Вид (View).

3.7. Изменение данных в результирующем множестве запроса

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

Является ли запрос обновляемым, можно достаточно легко обнаружить визуально: при отображении результатов запроса в конце записей должна быть пустая строка, которая помечена значком звездочки (*) в области выделения записи слева. Тогда в эту строку можно вводить данные, которые создадут новую запись. Если такая строка отсутствует, добавлять записи в запрос и изменять поля запроса нельзя.

Любой запрос имеет два свойства: Уникальные значения (Unique Values) и Уникальные записи (Unique Rows). Свойство Уникальные записи (Unique Row) исключает из результирующего набора дублированные записи, т. е. в результат запроса будут включены записи, которые имеют уникальные значения хотя бы в одном из полей. Свойство Уникальные значения (Unique Values) требует включения в результирующий набор только тех записей, которые имеют уникальные значения во всех полях. Значения этих свойств не могут одновременно быть равными Да (Yes), хотя оба могут иметь значения Нет (No). Значения этих свойств могут устанавливаться в окне свойств запроса. Большинство запросов, свойство Уникальные записи (Unique Row) которых имеет значение Да (Yes), могут использоваться для обновления данных. Запросы, свойство Уникальные значения (Unique Values) которых имеет значение Да (Yes), не допускают ни обновления имеющихся в них записей, ни добавления новых.

Можно добавлять и изменять записи в запросах, если:

  • две таблицы запроса связаны отношением "один-ко-многим" и при этом в таблице "один" не задано полей первичного ключа;

  • в запросе используются рекурсивные соединения; П в запросе применяются статистические функции SQL.

Условия, при которых можно добавить или обновить записи в запросе:

  • таблица является единственной в запросе;

  • таблицы в запросе связаны отношением "один-к-одному";

  • если таблицы в запросе св язаны отношением "один-ко-многим", можно изменять поля только в таблице "многие".

В таблице "один", связанной с другой таблицей отношением "один-ко-многим", можно изменять поля только в том случае, если ни одно поле таблицы "многие" не включено в результат запроса, а используется только для отбора записей.