Function(null) не работает

svintus
Дата: 22.02.2008 10:03:47
Добрый день.
В запросе имеется столбец: Выражение1: Функция(значение_поля)


Public Function Функция(Переменная As String)

If IsNull(Переменная ) Then
Функция= "НЕОПРЕДЕЛЕНО"
ElseIf Переменная = "" then
Функция= "НЕОПРЕДЕЛЕНО"
ElseIf Переменная Like "1*" then
Функция= "НАЧИНАЕТСЯ НА 1"
ElseIf .........................
End function

Если в функцию передать пустую строку, она выдаёт ошибку. Как её научить "проглатывать" null?
proposed amendment
Дата: 22.02.2008 10:06:08
svintus
Как её научить "проглатывать" null?


Optional <...> As String
Старый ворчун
Дата: 22.02.2008 10:32:25
proposed amendment
svintus
Как её научить "проглатывать" null?


Optional <...> As String

думаете поможет?
Переменная As Variant
svintus
Дата: 22.02.2008 10:32:27
Не помогло. Выдаёт #Ошибка
svintus
Дата: 22.02.2008 10:34:20
Старый ворчун
proposed amendment
svintus
Как её научить "проглатывать" null?


Optional <...> As String

думаете поможет?
Переменная As Variant


Заработало! спасибо большое!
dimichis
Дата: 22.02.2008 11:14:12
я бы написал так

If Nz(Переменная, "") = "" Then
    Функция = "НЕОПРЕДЕЛЕНО"
ElseIf Переменная Like "1*" Then
    Функция = "НАЧИНАЕТСЯ НА 1"
ElseIf .........................
End Function
Старый ворчун
Дата: 22.02.2008 11:32:45
dimichis
я бы написал так

If Nz(Переменная, "") = "" Then

Чем вам IsNull не нравится?
Это более универсальное решение, так как IsNull есть и в VB, и в VBA.
Да и зачем сравнивать строки ...
Владимир Саныч
Дата: 22.02.2008 21:53:19
dimichis
я бы написал так

If Nz(Переменная, "") = "" Then
    Функция = "НЕОПРЕДЕЛЕНО"
ElseIf Переменная Like "1*" Then
    Функция = "НАЧИНАЕТСЯ НА 1"
ElseIf .........................
End Function

Тогда налл и пустая строка будут обрабатываться одинаково. Оно нам надо?