Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Правильно ли писать Case Null? / 11 сообщений из 11, страница 1 из 1
16.10.2005, 17:18:50
    #33326947
kroost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
Имеется приблизительно следующий код:
Код: 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
16.10.2005, 17:21:04
    #33326950
kroost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
Пробовал вместо Case Null писать Case "" - та же история.
...
Рейтинг: 0 / 0
16.10.2005, 21:03:45
    #33327030
ВasiС
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
У тебя нигде не стоит
On Error Resume Next ?
...
Рейтинг: 0 / 0
16.10.2005, 21:21:13
    #33327042
AMSh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
Я бы для такой задачи воспользовался кодом подобным нижеследующему:
Код: 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
17.10.2005, 09:42:23
    #33327304
kroost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
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
17.10.2005, 09:45:58
    #33327311
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
А если попробовать CASE IS NULL
...
Рейтинг: 0 / 0
17.10.2005, 09:53:03
    #33327317
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
IS NULL применимо к объекту но не к переменной.
IsNull() - к вариантной переменной (или ADO-полю).
...
Рейтинг: 0 / 0
17.10.2005, 10:50:23
    #33327439
DisputantF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
В зависимости от задачи и условий:

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
17.10.2005, 11:01:34
    #33327472
DisputantF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
Самая главная идея вышеизложенного:
Необходимо «избавиться» от значения NULL.

P. S.
И делать это следует всегда!
...
Рейтинг: 0 / 0
17.10.2005, 11:25:30
    #33327545
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
Я бы так сделал.
Код: 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
17.10.2005, 11:26:12
    #33327551
kroost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильно ли писать Case Null?
DisputantFСамая главная идея вышеизложенного:
Необходимо «избавиться» от значения NULL.

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

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


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