Страница: 1 |
Страница: 1 |
Вопрос: неверный ход
Добавлено: 01.10.07 20:16
Автор вопроса: Annie
в VB 6 это не правильно работает.
..в функции
Private Function Stavka() As Double
Select Case nid
Case "стандарт1"
Select Case txt_AmountDay
Case Is <= 8: amount = 1: Exit Function
Case Is <= 15: amount = 2: Exit Function
Case Is <= 40: amount = 3: Exit Function
Case Is <= 50: amount = 4: Exit Function
Case Is <= 60: amount = 5: Exit Function
End Select
....
end select
end function
когда значение txt_AmountDay на самом деле "10" или больше, васик заходит в первый Case Is.А должен естественно в первый.
логической ошибки вроде нет
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 01.10.07 20:28
используй if (expression) then
Номер ответа: 2
Автор ответа:
Annie
Вопросов: 19
Ответов: 40
Профиль | | #2
Добавлено: 01.10.07 20:39
а с case'ом как разобраться?
Номер ответа: 3
Автор ответа:
Pavel
Вопросов: 0
Ответов: 82
Профиль | | #3
Добавлено: 01.10.07 22:15
) может так?
Select Case Amount
Case Is <= 8: Stavka = 1: Exit Function
Case Is <= 15: Stavka = 2: Exit Function
Case Is <= 40: Stavka = 3: Exit Function
Case Is <= 50: Stavka = 4: Exit Function
Case Is <= 60: Stavka = 5: Exit Function
End Select
End Function
Номер ответа: 4
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #4
Добавлено: 02.10.07 20:23
Вложенные Case редко когда не глючат. Тут и правда лучше If использовать:
Private Function Stavka() As Double
If nid = "стандарт1" Then
Select Case txt_AmountDay
Case Is <= 8: amount = 1: Exit Function
Case Is <= 15: amount = 2: Exit Function
Case Is <= 40: amount = 3: Exit Function
Case Is <= 50: amount = 4: Exit Function
Case Is <= 60: amount = 5: Exit Function
End Select
....
'ElseIf nid = "стандарт2" Then
'ElseIf nid = "стандарт3" Then
'...
'End If
End Function
Номер ответа: 5
Автор ответа:
Annie
Вопросов: 19
Ответов: 40
Профиль | | #5
Добавлено: 02.10.07 22:10
оператор if помог.Правда, Nytrogen,пришлось все заменять.
спасибо!
Номер ответа: 6
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #6
Добавлено: 02.10.07 23:24
Номер ответа: 7
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #7
Добавлено: 03.10.07 20:13
Rakel: как говорил наш преподователь программирования, нельзя бояться начинать написание программы сначала. И на самом деле, это ризонно.
Arcady_XQST: если честно, я пытаюсь избегать таких вложенных замысловатых конструкций. Я не исключаю, что возможны глюки. Скорее всего, это из-за выраженя Is, которое пытается "разорваться" на два Select'а.
Номер ответа: 8
Автор ответа:
Annie
Вопросов: 19
Ответов: 40
Профиль | | #8
Добавлено: 04.10.07 21:55
Nytrogen, в общем я так и делаю, стараюсь по крайней мере.
Номер ответа: 9
Автор ответа:
Annie
Вопросов: 19
Ответов: 40
Профиль | | #9
Добавлено: 04.10.07 22:19
Программа эта вообще-то написана на VBA, причем Select и даже вложенный прекрасно справляется с поставленной перед ним задачей. Но этот фокус не проходит на VB 6. Не помойму, они разные что-ли? Вроде тот бэйсик и этот.