После установки флажка Обеспечение целостности данных, Access делает доступными еще два флажка: Каскадное обновление связанных полей и Каскадное удаление связанных записей. При установленном флажке Каскадное обновление связанных полей Microsoft Access обновляет все значения чужих ключей в дочерних таблицах (то есть в таблицах на стороне отношения «многие» при связи «один ко многим») при изменении значения первичного ключа в родительской таблице, которая находится на стороне отношения «один» при связи «один ко многим». Если же вы установите флажок Каскадное удаление связанных записей, Microsoft Access удалит дочерние строки (связанные строки в дочерних таблицах) при удалении родительской строки (связанная строка в родительской таблице). Установите флажок Каскадное обновление связанных полей, чтобы при изменении кода вуза Access автоматически обновлял записи в таблице тСвязьАбвуз.
После нажатия кнопки Создать Access создаст связь и нарисует линию между двумя таблицами, указывающую на наличие связи между ними. Заметьте: когда вы просите обеспечить целостность данных, Access изображает на конце линии у таблицы, находящейся на стороне отношения «один», цифру 1, а на другом конце у таблицы со стороны отношения «многие» – символ бесконечности. Чтобы удалить связь, щелкните по ее линии и нажмите клавишу Del. Если вы хотите отредактировать или изменить существующую связь, дважды щелкните по соответствующей линии, чтобы снова открыть окно диалога Связи.
12.8. Работа с данными при помощи запросов
В режиме таблицы доступны самые разные операции с данными – просмотр, сортировка, фильтрация, обновление и печать. Однако очень часто приходится проводить вычисления или просматривать данные из нескольких таблиц. Отобрать нужные данные можно с помощью запросов.
После выполнения запроса на выборку (который отбирает информацию из таблиц и других запросов базы данных, в то время как при выполнении запросов на изменение данные вставляются, обновляются или удаляются) Access создает набор записей, содержащий отобранные данные. Однако в отличие от реальной таблицы, этот набор записей физически не существует в базе данных. Access создает набор записей из данных таблицы только во время выполнения запроса.
Выбор данных из одной таблицы
Одним из преимуществ запросов является то, что они позволяют достаточно быстро отобрать необходимые данные из нескольких связанных таблиц. Но запросы полезны и при работе с одной таблицей. Все приемы, используемые при работе с единственной таблицей, годятся и для сложных многотабличных запросов, поэтому мы начнем с запросов на выборку данных одной таблицы.
На рис. 12.8 показан запрос в режиме конструктора. Окно конструктора запросов разделено на две части. В верхней находятся списки полей таблиц или запросов, на основе которых создается новый запрос. В нижней располагается бланк QBE (Query By Example – запрос по образцу), в котором выполняется вся работа по созданию запроса. Каждый столбец бланка представляет одно поле, используемое в запросе. Поле может просто принадлежать одной из таблиц, быть вычисляемым (иными словами, его значение рассчитывается на основе одного или нескольких полей таблицы) или итоговым, то есть использующим одну из встроенных функций Microsoft Access.
Рисунок 12.8. Запрос в режиме Конструктор
Первая строка бланка запроса служит для выбора полей, которые должны присутствовать в наборе записей, используется для сортировки данных или для выбора информации из таблицы. Полям запроса можно присвоить имена, которые будут отображаться в заголовках столбцов при выводе набора записей запроса, а для генерации вычисляемых полей можно использовать выражения любой степени сложности.
Если была выполнена команда Вид->Имена таблиц, во второй строке бланка запроса Access выведет имя таблицы, из которой выбрано поле. В третьей строке бланка можно задать сортировку по возрастанию или по убыванию.
Флажки в строке бланка Вывод на экран отвечают за вывод полей в наборе записей. По умолчанию выводятся все поля, включенные в бланк Запроса.
Для ввода условия отбора записей используется строка Условие отбора и строки или. На рис. 12.5 показан запрос на выборку фамилий тех студентов, которые имеют оценки от 4 до 5 баллов.
Включение полей в запрос
Первым шагом при создании запроса является выбор полей, включаемых в набор записей. Можно просто перетащить поле с помощью мыши в нужный столбец бланка из списка полей верхней части окна. При перетаскивании поля указатель мыши превращается в маленький прямоугольник.
Читать дальше