Доступ к запросу / условный - PullRequest
1 голос
/ 15 апреля 2011
IIF(IsNull(now(),now()-1,now())

Когда я ставлю эту функцию, функция isnull не работает. Появились пустые данные.

Ответы [ 2 ]

2 голосов
/ 18 апреля 2011

IsNull () в Access отличается от IsNull () в SQL Server.В последнем случае это способ вернуть другое значение, если поле найдено пустым, как в IsNull ([Field1], [Field2]) возвращает Field2, если Field1 равно Null.

В Access, IsNull ()является логической функцией, которая имеет один аргумент и используется для определения того, оценивается ли переданное ей выражение как Null.

Для эквивалента SQL Server IsNull () вы можете использовать Nz () в Access, но этонедоступен извне Access (через ODBC или OLEDB).В этом случае вы должны преобразовать его в функцию Immediate If, ​​IIf () и вернуть значения, протестировав их с помощью IsNull:

  • SQL Server: IsNull ([Field1], [Field2)])
  • Доступ ноль-в-ноль: Nz ([Поле1], [Поле2])
  • Доступ немедлен, если: IIf (IsNull ([Поле1]), [Поле2], [Поле1])
2 голосов
/ 15 апреля 2011

Прежде всего, отсутствует одна закрывающая скобка:

IIF (IsNull (now () ) , now () - 1, now ())
(здесь не использовались теги кода, поэтому я могу сделать скобки жирным)

С добавлением скобок всегда возвращается текущая дата (без вычитания 1), потому что Now() никогда не может бытьнуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...