powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка TextBox на пустоту
25 сообщений из 72, страница 2 из 3
Проверка TextBox на пустоту
    #39893679
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа, проверил согласен! спасибо , только вот всегда хочется стремится к минимум кода, но и ваш работает! спасибо
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893730
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei,
Len никогда не считает длину строки, а берёт готовое значение, которое всегда хранится в начале строки, поэтому лучше и быстрее не сравнивать строку с "", а считать длину
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893750
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа, это все хорошо и позновательно для меня, но сути проблемы я так и не увидел,
Почему же у меня загружается код после выхода , после прерывания?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
'в модуле
Sub проверка()
Dim i
For i = 1 To 7
If Len(Trim(UserForm1.Controls("TextBox" & i))) = 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80C0FF
MsgBox "Выделенные Поля_обязательны_для заполнения", vbInformation, "Сообщение"
Exit Sub 
'ПОСЛЕ ОКОНЧАНИЯ СРАБАТЫВАЕТ КОД НА КНОПКЕ

ElseIf Len(Trim(UserForm1.Controls("TextBox" & i))) <> 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80000005
End If
Next i
MsgBox "Чего тыркаешь! Все поля требуемые для заполнения заполнены!", vbInformation, "Сообщение"
End Sub

'НА КНОПКЕ
Private Sub CommandButton1_Click() 
'====
Call проверка
'=====
......... ДРУГОЙ КОД
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893754
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что между "Call проверка" и "ДРУГОЙ КОД" у тебя нет никакого прерывания, почему оно должно прерываться по твоему? Ты ничего для этого не сделал.
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893756
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, так между перво проверкой указал Exit Sub , код должен прерваться
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893759
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда ты внутри " Sub проверка()" пишешь "Exit Sub ", у тебя заканчивается выполнение " Sub проверка" и не более того. Точно так же, как оно заканчивается, когда доходит до последней команды внутри " Sub проверка".

А вот внутри " Sub CommandButton1_Click" у тебя нет никакого "Exit Sub ", поэтому после "Call проверка" выполняется "ДРУГОЙ КОД", просто команды выполняются друг за другом последовательно, если ты ничего не сделаешь для изменения порядка выполнения команд.
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893792
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, у меня только что приходит это перенести код из модуля который проверяет второе условие, НО я бы хотел оставить в модуле, а так
Код: vbnet
1.
2.
Call проверка
 Exit Sub

у меня вообще после заполнения все полей не выполняется далее код
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893794
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Само собой, теперь ты написал Exit Sub и процедура заканчивается
А тебе нужно выполнять Exit Sub только если проверка не прошла
А для этого ты должен знать результат проверки. А "проверка" никак не сообщает тебе результат проверки.
Что нужно сделать - я писал выше.
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893832
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, я изменил порядок, но на кнопке оставил как есть Call проверка, но код срабатывает в двух условий
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub проверка()
Dim i
For i = 1 To 7
If Len(Trim(UserForm1.Controls("TextBox" & i))) <> 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80000005


ElseIf Len(Trim(UserForm1.Controls("TextBox" & i))) = 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80C0FF
MsgBox "поле пустое", vbInformation, "!"
Exit Sub
End If
Next i
End Sub
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893834
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, даже если прерываю так, в этом случае не срабатывает ни чего
Код: vbnet
1.
2.
Call проверка
Exit Sub
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893851
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, ну как еще объяснить?
Не писать же всю программу за тебя, ты так ничему не научишься
Код: vbnet
1.
2.
3.
Call проверка
If ....... Then Exit Sub
......... ДРУГОЙ КОД



думай
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893856
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, блин так проверку надо делать ??!!! так я понял что проверку в кнопке надо делать НО я то хотел весь код оставить в модуле
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893862
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так и оставляй в модуле.
Только результат проверки тебе нужно вернуть из модуля в код кнопки
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893904
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я в эти прерывания не вник, но я думаю вот что об этом
есть форма, на ней есть поля для заполнения, и кнопка, делает что-то ....
предполагается что юзер заполняет поля и жмёт кнопку
вот он нажал кнопку-прога не после первого не правильно заполненного поля выдает резюме, а сразу все проверяет
правее от поля я бы поставил лейблы, в случае правильности на лейблы ставил зелёного цвета галочку иначе красного цвета крестик
информативно и сразу по всем полям
и какое прерывание? если что-то неладно, предполагается что юзер улаживает и снова жмёт кнопку и всё повторяется....
по моему так, не?
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893907
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно и чтобы кнопка появилась, была доступна только когда все поля заполнил
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893918
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа,
сейчас пообедаем и будем дальше мозг выедать
мне бы хотелось бы понять, тот подход который мною задумано
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893947
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сессия началась, что ли? от куда столько вопросов 0 уровня?
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893964
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes, сами то давно стали "умным"?
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893987
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, не получается

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Sub CommandButton1_Click()
Stop
'====
Call проверка
If i = 0 Then Exit Sub
код другой

'=====
End Sub

Public i
Function проверка()

For i = 1 To 3
If Len(Trim(UserForm1.Controls("TextBox" & i))) <> 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80000005
Exit Function

ElseIf Len(Trim(UserForm1.Controls("TextBox" & i))) = 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80C0FF
MsgBox "поле пустое", vbInformation, "!"
End If
Exit Function

Next i
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893993
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нужно использовать public

Нужно вернуть результат из функции "проверка"

Для этого нужно открыть учебник и почитать, как в VB создаются функции, как из них возвращаются значения, как принять значение из вызванной функции в переменную.
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39893998
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei,
каша какая-то
Код: vbnet
1.
2.
3.
Exit Function'-зачем?

Next i


Код: vbnet
1.
If i = 0 Then Exit Sub


когда станет =0?
пальчиком жмите на Эф8
и в нужных местах добавьте
Debug.Print ....
в Immediate смотрите результат
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894287
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, после того как прошла проверка и все поля заполнены
Код: vbnet
1.
2.
3.
4.
For i = 1 To 3
If Len(Trim(UserForm1.Controls("TextBox" & i))) <> 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80000005
Exit Function


процедура попадает в
Код: vbnet
1.
2.
If i <> 0 Then Exit Sub
другой код


но почему то и на прерывание попадает "Exit Sub" а если убрать прерывание то и код на проверку пустых полей
Код: vbnet
1.
2.
3.
4.
5.
6.
ElseIf Len(Trim(UserForm1.Controls("TextBox" & i))) = 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80C0FF
MsgBox "поле пустое", vbInformation, "!"
End If
Exit Function
Next i


тоже попадает в
Код: vbnet
1.
2.
If i <> 0 Then 
другой код
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894313
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, сдается я проверку не правильно делаю
Код: vbnet
1.
If i <> 0 Then 
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894344
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи строку, в которой твоя функция "проверка" возвращает результат проверки (или хоть какой-нибудь результат)
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894361
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, вложение
...
Рейтинг: 0 / 0
25 сообщений из 72, страница 2 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка TextBox на пустоту
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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