powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Правильно ли писать Case Null?
11 сообщений из 11, страница 1 из 1
Правильно ли писать Case Null?
    #33326947
kroost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется приблизительно следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Select Case rs.Fields("Param")
        Case "1", "2", "4m"
               iGreen = iGreen +  1 
        Case "55"
               iRed = iRed +  1 
        Case Null
               iWhite = iWhite +  1 
End Select
Ставлю брякпойнт на Case Null.
В соответствующей строке (где поле = Null) заскакивает на этот брякпойнт. Последующий F8 перебрасывает сразу на End Select без захода внутрь кейса. Очевидно, проблема с синтаксисом?
Благодарю за помощь.
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33326950
kroost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал вместо Case Null писать Case "" - та же история.
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327030
ВasiС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У тебя нигде не стоит
On Error Resume Next ?
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327042
AMSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы для такой задачи воспользовался кодом подобным нижеследующему:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    If (Not IsNull(rsFields.Fields("Param"))) Then
        Select Case rsFields.Fields("Param")
        Case "1"
            Debug.Print "1"
        Case "2"
            Debug.Print "2"
        End Select
    Else
        Debug.Print "!NULL!"
    End If
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327304
kroost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On Error Resume Next нигде не стоит.
AMShЯ бы для такой задачи воспользовался кодом подобным нижеследующему:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    If (Not IsNull(rsFields.Fields("Param"))) Then
        Select Case rsFields.Fields("Param")
        Case "1"
            Debug.Print "1"
        Case "2"
            Debug.Print "2"
        End Select
    Else
        Debug.Print "!NULL!"
    End If

В итоге что-то подобное напишу. Но вот всё-таки интересно - если он уже различает этот case null, то почему не заходит в него? Баг в VB?
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327311
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если попробовать CASE IS NULL
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327317
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IS NULL применимо к объекту но не к переменной.
IsNull() - к вариантной переменной (или ADO-полю).
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327439
Фотография DisputantF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В зависимости от задачи и условий:

1. Заменять значения NULL еще в запросе – самый ЛУЧШИЙ и ИДЕАЛЬНЫЙ
вариант. Скажем при помощи функции ISNULL.

2. Заменить значения NULL, в коде VB, при помощи функции FORMAT:
1) для цифровых значений
Код: plaintext
variable=Format(rsFields.Fields("Param").Value, "#.##;;;\0")
2) для всех остальных
Код: plaintext
variable=Format(rsFields.Fields("Param").Value, ";")
3) или если в Вашем поле могут быть и те и другие значения
Код: plaintext
1.
2.
3.
4.
5.
If IsNumeric(rsFields.Fields("Param").Value) = True Then
    variable = Format(rsFields.Fields("Param").Value, "#.##;;;\0")
ElseIf IsNumeric(rsFields.Fields("Param").Value) = False Then
    variable= Format(rsFields.Fields("Param").Value, ";")
End If
и в Select Case использовать variable
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327472
Фотография DisputantF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самая главная идея вышеизложенного:
Необходимо «избавиться» от значения NULL.

P. S.
И делать это следует всегда!
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327545
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы так сделал.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
If Not IsNull(rs.Fields("Param")) Then
  Select Case rs.Fields("Param")
        Case "1", "2", "4m"
               iGreen = iGreen +  1 
        Case "55"
               iRed = iRed +  1 
        End Select
else
  iWhite = iWhite +  1 
end if
...
Рейтинг: 0 / 0
Правильно ли писать Case Null?
    #33327551
kroost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DisputantFСамая главная идея вышеизложенного:
Необходимо «избавиться» от значения NULL.

P. S.
И делать это следует всегда!

Да, этот Null всегда в VB несколько проблематичен. Спасибо за совет.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Правильно ли писать Case Null?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]