Комбинирование условий на значения
Независимо от типа данных вы можете комбинировать ваши условия двумя способами. Используя ключевое слово And, можно создать правило верификации, содержащее два условия. Этот прием очень полезен, т. к. у поля может быть только одно условие на значение.
Для использования ключевого слова And просто запишите два правила верификации и вставьте между ними слово And. Неважно, какое правило вы укажете первым. Далее приведено условие на значение даты, которая должна была наступить до текущей даты, но после 1 января 2000 г.:
<Date( ) And >#l/l/2000#
Можно также использовать ключевое слово Or для принятия значения, удовлетворяющего одному из условий. В следующем правиле разрешены числа, большие 1000 или меньшие-1000:
>1000 Or < -1000
Создание условия на значение для таблицы
Условия на значения всегда применяются к отдельному полю. Но проектировщики БД часто нуждаются в средствах сравнения значений разных полей. Предположим, что у вас есть таблица Orders(заказы), в которой регистрируются покупки в вашем магазине по продаже фирменных носков с монограммой. В таблице Ordersвы используете два поля: DateOrdered (дата заказа) и DateShipped(дата доставки). Для того чтобы все было как следует, необходимо, чтобы дата из поля DateOrderedбыла более ранней, чем дата из поля DateShipped. Помимо всего прочего, как доставить изделие, прежде чем кто-то его закажет?
Поскольку это правило верификации включает в себя два поля, единственный способ вставить его — создать условие на значение для всей таблицы. Табличные правила верификации могут применять все приемы, уже известные вам, и удалять значения из любого поля текущей записи.
Далее приведен алгоритм создания условия на значение для таблицы.
1. В Конструкторе выберите на ленте Работа с таблицами| Конструктор→ Показать или скрыть→ Страница свойств(Table Tools | Design →Show/Hide → Property Sheet).
Справа в окне программы появляется страница с дополнительными параметрами (рис. 4.16).
Примечание
Для таблицы можно создать только одно правило верификации. Это ограничение может показаться проблемой, но ее легко обойти с помощью ключевого слова And (см. разд. "Комбинирование условий на значения" ранее в этой главе) и объединения того количества условий, которое вам нужно. Правило верификации может быть трудным для чтения, но при этом работать без сбоев.
Рис. 4.16.В Окне свойствотображена некоторая информация о таблице в целом, включая параметры сортировки и фильтрации, примененные вами на листе данных, а также условие на значение. В данном примере правило не допускает доставку заказов до того, как они будут заказаны
2. На вкладке Свойства таблицызадайте Условие на значение.
В условии на значение для таблицы можно использовать все уже известные вам ключевые слова. Обычно в условии для таблицы сравнивается несколько полей. Условие на значение [DateOrdered] < [DateShipped] гарантирует, что в ноле DateOrderedболее ранняя дата, чем используемая в поле DateShipped.
При ссылке на поле в условии на значение для таблицы имена полей следует заключать в квадратные скобки. Таким образом, программа Access может установить разницу межу полями и функциями (например, функцией Date ( ), о которой вы узнали в разд. "Задание значений по умолчанию "далее в этой главе).
3. Задайте текст Сообщения об ошибке.
Это сообщение об ошибке выводится на экран, если условие не выполняется. Оно аналогично сообщению об ошибке для условия на значение поля.
Когда вставляется новая запись программа Access сначала проверяет условия на значения поля. Если данные успешно проходят проверку (и у них правильные типы), Access проверяет условие на значение для таблицы.
Подсказка
После вставки условия на значение для таблицы вы, возможно, захотите закрыть Страницусвойств, чтобы увеличить свободное пространство в окне Конструктора,для этого выберите на ленте Работа с таблицами| Конструктор→Показать или скрыть→Страница свойств.
Подстановки
В БД даже незначительные вариации могут создавать большие неприятности. Допустим, вы управляете компанией International Cinnamon, пекарней многонациональной сети, выпускающей булочки с корицей и имеющей сотни заказов в день. В таблице Orders у вас есть следующие записи:
Quantity (количество) Product (изделие)
10 Frosted Cinnamon Buns
24 Cinnamon Buns with Icing
16 Buns, Cinnamon (Frosted)
120 FCBs
…
(В данном примере другие поля, такие как столбец Коди сведения о клиенте, сделавшем заказ, опущены.)
Все заказы, приведенные в таблице, означают одно и то же: различные количества вкусных, покрытых сахарной глазурью булочек с корицей, Но текст в столбце Productслегка отличается. Эти отличия не создают проблем для простых смертных (например, вы без труда выполните эти заказы), если вы захотите в дальнейшем проанализировать характеристику реализации (sales performance), возникнут неприятности. У вас не будет возможности сообщить программе Access о том, что Frosted Cinnamon Bun и FCB — одно и то же, булочка с корицей, программа считает их разными изделиями. Если вы попытаетесь подсчитать наиболее популярные изделия или проверить долгосрочные тренды объемов продаж, у вас ничего не выйдет.
Примечание
Данный пример акцентирует внимание на том, что вы узнали раньше. А именно, программы управления БД придирчивы и серьезны, они не терпят мельчайших несоответствий. Если вы хотите, чтобы ваши БД приносили пользу, то должны быть уверены в том, что в них содержится первоклассная информация.
Подстановки — еще одно средство, позволяющее стандартизировать ваши данные. Подстановки, в первую очередь, позволяют вставить значение в поле из подготовленного списка возможных вариантов. При надлежащем применении это средство решает проблему, возникшую в таблице Orders,— вам просто нужна подстановка, включающая все виды изделий, которые вы продаете. В этом случае вместо набора вручную названия изделия вы можете выбрать из списка Frosted Cinnamon Buns (глазированные булочки с корицей). Вы не только
экономите время, но и избегаете таких названий, как FCB, тем самым гарантируя непротиворечивость списка заказов.
У программы Access два основных типа списков подстановок: списки с набором фиксированных значений, заданных вами, и списки, полученные из связанной таблицы. В следующем разделе вы узнаете, как создавать список первого типа. В главе 5 вы перейдете ко второму типу.
Примечание
Подстановки не поддерживают следующие типы данных: Поле MEMO, Дата/время, Денежный, Счетчик, Логический, Объект OLE, Гиперссылка и Вложение.