Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 проверка ISNULL в функции - не могу разобраться  [new]
MOXHATOE™
Guest
создаю функцию:

Public Function dddate(ddd As Date) as Integer
...
dddate = datediff("d",ddd,... и так далее)
...
End Function

пишу селект:

Select date, dddate(date) from table01

Все отлично работает если значение date не равно NULL, если равно NULL - пишет в ячейку "!Ошибка".

Меняю функцию следующим образом:

Public Function dddate(vStart As Date) as Integer
...
If Not IsNull(vStart) then
dddate = datediff("d",ddd,... и так далее)
else
dddate = null
end if
...
End Function

Все равно, если на входе NULL - выдает ошибку.

Менял проверку IsNull на IsDate - тот же результат.

Залез в дебаггер, поставил брейк-пойнты - оказалось, в функцию нулевые значения просто не передаются...

Как быть???
Как заставить функцию выдавать значение NULL вместо ошибки, если на входе NULL???
22 фев 05, 16:37    [1338837]     Ответить | Цитировать Сообщить модератору
 Re: проверка ISNULL в функции - не могу разобраться  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Не надо писать As Date. Переменная типа Date всегда будет выдавать ошибку при попытке присвоить ей Null. А надо писать As Variant.
22 фев 05, 16:41    [1338855]     Ответить | Цитировать Сообщить модератору
 Re: проверка ISNULL в функции - не могу разобраться  [new]
Serge Gavrilov
Member

Откуда:
Сообщений: 3248
Вместо
Public Function dddate(ddd As Date) as Integer
использовать
Public Function dddate(ddd As Date) As Variant

Integer не может быть Null
22 фев 05, 16:43    [1338861]     Ответить | Цитировать Сообщить модератору
 Re: проверка ISNULL в функции - не могу разобраться  [new]
MOXHATOE™
Guest
Спасибо!
22 фев 05, 16:48    [1338876]     Ответить | Цитировать Сообщить модератору
 Re: проверка ISNULL в функции - не могу разобраться  [new]
IsNul()
Guest
сложить два ответа ...
22 фев 05, 16:49    [1338882]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить