Есть разница, как поля были введены в запрос. При использовании символа
звездочки в запрос автоматически включаются все поля, добавленные в базовую
таблицу/запрос после создания данного запроса. Все удаленные поля будут
автоматически удаляться из запроса. С одной стороны - это хорошо, с другой - может
случиться, что пользователь в ответ на один и тот же запрос будет получать разный
ответ, и, вполне может быть, не тот, который он ожидает. Так, например, если в
таблице "СОТРУДНИК" первоначально фиксировались только основные данные по
сотруднику, а затем было введено много других полей, то совсем не обязательно, что
пользователь захочет видеть все эти данные, в ответ на свой запрос.
Если же поле, включенное в запрос явным способом, было впоследствии
удалено из таблицы, то запрос может выполняться не совсем корректно.
Так как поля, включенные в запрос путем использования "*", в явном виде в
бланке запроса не высвечиваются, то те поля, которые используются в условии
отбора, надо дополнительно включить в бланк запроса. Чтобы эти поля дважды не
выводились в ответ, надо у этих полей снять флажок «Вывод на экран» (рис. 2.27).
Изображенный на рис. 2.27 запрос реализует вывод всех данных, содержащихся в
таблице «СОТРУДНИК», по сотруднику с указанной фамилией, причем поле "ФИО"
выводится в ответе только один раз, так как снят флажок "v" в колонке «ФИО».
Изображенный на рис. 2.27 запрос реализует вывод всех данных, содержащихся в
таблице «СОТРУДНИК», по сотруднику Диго С.М., причем поле "ФИО" выводится в
ответе только один раз, так как снят флажок "v" в колонке «ФИО».
Обобщая выше сказанное, можно сделать вывод: поля включаются в бланк
запроса в том случае, если они нужны в ответе, либо если они используются для
задания условий отбора. В последнем случае они могут включаться, а могут и не
включаться в ответ.
Задание условий отбора
Естественно, что при создании запросов важнейшим моментом является задание
условий отбора. В предыдущем примере мы уже использовали условие отбора для
получения информации по одному конкретному сотруднику. Язык QBE,
реализованный в СУБД Access, относится к классу табличных двухмерных языков.
Условие отбора необходимо задавать в таблице бланка запроса в той графе, к которой
относится данное условие. На рис. 2.27 такое условие задано в графе ФИО.
Различают несколько типов запросов: запрос на выборку (Select), перекрестный
запрос (Crosstab), создание таблицы (Make-table), запрос на обновление (Update),
добавление (Append), удаление (Delete).
Управление выводом повторяющихся строк
В том случае, если в ответ выводятся не все поля исходной таблицы, может случиться,
что строки в ответе будут повторяться. Например, если вывести только список кафедр
из таблицы "СОТРУДНИК", то наименования одних и тех же кафедр могут встречаться
несколько раз. Для того чтобы управлять выводом повторяющихся строк, можно
позиционироваться на произвольное место вне бланка запроса и списка полей, нажать
правую кнопку мыши, и в появившемся контекстном меню (рис. 2.28) выбрать
строку "Свойства" (либо выбрать соответствующую кнопку на панели инструментов).