Access-VBA: пустой результат для пропущенных значений в функции? - PullRequest
0 голосов
/ 11 августа 2010

У меня есть вопрос, на который, вероятно, есть довольно простой ответ, но я пока не нашел решения.Вот пример:

Public Function abc(var_1 As Variant) As Single
abc = 2 * var_1
End Function

Я хочу вызвать эту функцию в запросе Access.Значения для 'var_1' взяты из числового (одиночного) поля данных.Проблема: некоторые значения для var_1 пусты / отсутствуют.Для этих значений мне нужно, чтобы результат функции также был пустым, но сейчас они равны '0'.

Я уже много чего пробовал, но ничего не работает.Результат для пустых значений всегда равен 0 и не пуст.Вот одна попытка:

If IsNull(var_1) Then
        abc = Empty
        Exit Function
End If

Не сработало.

Любая помощь по этой проблеме будет очень признательна.:)

Редактировать:

Спасибо за ответы.Я пытался вернуть вариант раньше, и он возвращал пустые поля.Однако вычисляемое поле должно вести себя как число, а не как текст, поэтому это решение не работает для меня.Я закончил тем, что использовал ответ Бет, хотя это больше работы, чем я хотел бы иметь.;) Вызов функции в SQL:

IIF(IsNull(X)=False;abc(X))

abc в VBA:

Public Function abc(var_1 As Single) As Single
abc = 2 * var_1
End Function

Ответы [ 2 ]

2 голосов
/ 11 августа 2010

Измените функцию, чтобы она выглядела примерно следующим образом.

Public Function abc(var_1 As Variant) As Variant
    If IsNumeric(var_1) Then
        abc = 2 * var_1
    Else
        abc = Null
    End If
End Function

Я не верю, что вы можете вернуть ноль в сингле, как пытались сделать.

0 голосов
/ 11 августа 2010

или проверка на ноль на более высоком уровне, чем функция, хотя вам придется делать это везде, где функция называется

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