Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 Возврат "пустого" значения  [new]
F_Sergey
Member

Откуда:
Сообщений: 42
Добрый день! Прошу подсказать, какой аргумент нужно указать в функции, чтобы при отсутствии значения она и возвращала "пустое" значение?
Function Proc() As String
Proc = IIf(IsNull([Forms]![Общая]![ПолеСоСписком116]), ??? , [Forms]![Общая]![ПолеСоСписком116])
End Function

С уважением
Сергей
6 июн 19, 13:22    [21903434]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
""
6 июн 19, 13:24    [21903441]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19507
F_Sergey
"пустое" значение
Зависит от того, что лично Вы понимаете под этим термином.
6 июн 19, 13:54    [21903491]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
F_Sergey
Member

Откуда:
Сообщений: 42
Akina, Просто пустое значение, неопределенное.
6 июн 19, 14:01    [21903502]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
F_Sergey
Member

Откуда:
Сообщений: 42
Konst_One, "" и выводят именно их "", а мне не нужно ничего...
6 июн 19, 14:03    [21903505]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
с точки зрения типа String, который вы возвращаете, это и есть пустое значение строки. можете через vbNullString сделать от этого результат не изменится.


+
Так что это? vbNullString - специальная константа VB, которая обозначает пустую строку. Литерал "" представляет собой пустую строку. Там важная разница. Пустая строка - настоящая строка. Нулевая строка - нет. Это всего лишь ноль. Если вы знаете язык C, vbNullString является эквивалентом NULL.

Для большинства целей vbNullString эквивалентен "" в VB. Единственное практическое отличие заключается в том, что vbNullString быстрее назначает и обрабатывает и занимает меньше памяти.

Если вы вызываете какой-либо API или компонент, отличный от VB, протестируйте вызовы с помощью vbNullString до распространения вашего приложения. Функция, которую вы вызываете, может не проверять строку NULL, и в этом случае она может упасть. Функции Non-VB должны проверять значение NULL перед обработкой строкового параметра. С неудачей, конкретная функция, которую вы вызываете, не делает этого. В этом случае используйте "". Обычно API поддерживают vbNullString, и они могут даже лучше работать с ним! "
6 июн 19, 14:26    [21903543]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19507
F_Sergey
Просто пустое значение, неопределенное.
А поконкретнее? Строка нулевой длины? vbNullString? Empty? что-то ещё?
6 июн 19, 14:30    [21903546]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
Function Proc() As String
    Proc = VBA.IIf(VBA.IsNull([Forms]![Общая]![ПолеСоСписком116]), "", [Forms]![Общая]![ПолеСоСписком116])
End Function
6 июн 19, 14:32    [21903553]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
F_Sergey
Member

Откуда:
Сообщений: 42
Konst_One, Такая конструкция возвращает двойные кавычки "", а не пустое значение...
6 июн 19, 14:58    [21903605]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
такого быть не может, ваша функция вернет пустое значение строки. разбирайтесь с отображением на форме, где вы это всё делаете, в какой программе?
6 июн 19, 15:08    [21903622]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
F_Sergey
Member

Откуда:
Сообщений: 42
Konst_One, Вот как оно есть...(снимок)

К сообщению приложен файл. Размер - 13Kb
6 июн 19, 15:16    [21903635]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
да уж =)
разбейте своё выражение на 2 части. проверьте сначала значение в вашем полесосписком116 (выведите в отладке)
6 июн 19, 15:21    [21903643]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Konst_One
Member

Откуда:
Сообщений: 11487
...
Proc = ...
Debug.Print "Proc=" & Proc
End Function
6 июн 19, 15:22    [21903647]     Ответить | Цитировать Сообщить модератору
 Re: Возврат "пустого" значения  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20692
F_Sergey
Konst_One, Такая конструкция возвращает двойные кавычки "", а не пустое значение...
С чего ты решил? На скриншоте как раз пустая строка. Разберись, как значения переменных показываются в locals

В конце концов проверь длину строки функцией Len()

К сообщению приложен файл. Размер - 19Kb
6 июн 19, 20:57    [21904017]     Ответить | Цитировать Сообщить модератору
Все форумы / Visual Basic Ответить