Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Обработка пропущенных или неопределенных значений




В БД есть два типа полей: обязательные и необязательные. Как правило, в БД поля необяза­тельные (как обсуждалось в разд. "Запрет незаполненных полей" главы 4), что означает для неаккуратного пользователя возможность пропуска большого числа значений. Эти пропу­щенные значения называют неопределенными (null), и их следует тщательно обрабатывать.

Если вы хотите написать условие отбора, вылавливающее неопределенные значения, просто введите в ячейку Условие отбора следующий текст: Is Null

Это условие выберет все записи с пропущенными значениями. Воспользуйтесь им в поле CustomerID таблицы Orders для поиска всех заказов, не связанных с клиентом. Или игно­рируйте несвязанные записи, заменив условие отбора на обратное:

Is Not Null


Иногда вам не нужно специально искать (или игнорировать) неопределенные значения. Вместо этого вам надо заменить их для рассматриваемой задачи чем-то более информатив­ным. К счастью, как раз для этого есть функция со странным названием Nz ( ).

У функции Nz () два аргумента. Первое значение (как правило, поле запроса) может со­держать неопределенное значение. Второй параметр — это значение, которое вы хотите ото­бразить в результатах запроса, если программа Access найдет неопределенное значение. Да­лее приведен пример, использующий функцию Nz ( ) для преобразования в 0 неопределенных значений в поле Quantity:

Nz([Quantity], 0)

Преобразование в 0 — стандартное поведение для функции Nz ( ), поэтому можно опус­тить второй параметр, если это как раз то, что вам нужно:

Nz([Quantity])

В данный момент, возможно, вас не сильно впечатляет перспектива замены пропущен­ных значений нулями. Но эта функция жизненно важна, если нужно создать вычисляемые поля, обрабатывающие значения, которые могут быть неопределенными. Рассмотрим ка­жущийся безобидным пример:

OrderItemCost: [Quantity] * [Price]

Это выражение приведет к ошибке, если значение поля Quantityбудет неопределенным. Неопределенные значения странным образом распространяются наподобие инвазивного грибка. Если у одного из операндов в вычислении неопределенное значение, результат автоматически становится неопределенным. В данном примере это означает, что иоле OrderItemCostдля данной записи становится неопределенным. Хуже того, если OrderItemCostввести в другое вычисление или промежуточный итог, они тоже станут не­определенными. Прежде чем вы об этом узнаете, ваши значимые данные запроса превратят­ся в кучу ячеек с неопределенными значениями.

Для устранения этой проблемы очистите необязательные ноля от неопределенных зна­чений с помощью функции Nz ( ): OrderItemCost: Nz([Quantity]) * Nz([Price])

Наконец, функцию Nz ( ) можно использовать для замены всех неопределенных значе­ний другой величиной, В текстовое поле можно ввести что-то более информативное. Далее приведен пример, отображающий текст ("Not Entered" — не введено) рядом с каждой записью, не содержащей имени и фамилии:

Name: Nz([FirstName] & [LastName], "[Not Entered]")

 

 


Поделиться:

Дата добавления: 2014-11-13; просмотров: 92; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты