powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка TextBox на пустоту
22 сообщений из 72, страница 3 из 3
Проверка TextBox на пустоту
    #39894376
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я просил показать строку, а не прислать файл
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894385
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
все функции проверки возвращают один результат, заходят в процедуру
" If (i) <> 0 Then" и "End If" срабатывание другого кода не происходит


Код: vbnet
1.
2.
3.
4.
5.
Call проверка
   If (i) <> 0 Then
'=====
другой код
End If



если убрать прерывания проверки то код зацикливается проверяет-выделяет и все ни куда более
Код: 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
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894393
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
после работы кода проверки на заполненность полей
Код: vbnet
1.
2.
3.
If Len(Trim(UserForm1.Controls("TextBox" & i))) <> 0 Then
UserForm1.Controls("TextBox" & i).BackColor = &H80000005
Exit Function


, код прерывается
Код: vbnet
1.
Exit Function


проверяется а кнопке
Код: vbnet
1.
2.
If (i) <> 0 Then
вот где моя загвоздка



и end if

я навожу курсор на (i) = показывает - Empty
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894399
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei
Код: vbnet
1.
вот где моя загвоздка

нет, не тут пока что

У тебя есть функция Function проверка()
она должна возвращать результат - прошла проверка или нет
True или False

Сначала это сделай
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894405
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
Call проверка Да_или_Нет

Function проверка(Да_или_Нет)
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894424
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа, i = постоянно True
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894428
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei,
Код: vbnet
1.
2.
3.
Call проверка Да_или_Нет

Function проверка(Да_или_Нет)



а здесь в условиях где поля заполнены Да_или_Нет=True, иначе нет
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894433
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.
Private Sub CommandButton1_Click()
Stop
'====
Call поверка
    If i < 0 Then
Exit Sub
ElseIf i > 0 Then   код проверки If.... проверяет попадает сюда , НО НЕ продолжает работать другой код сразу  End If
другой код
'=====
End If

End Sub
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
End Function
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894465
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя функция "проверка" не возвращает результат.
В учебник я тебя уже отправлял.

Шаги следующие:
- Сделать так, чтобы функция возвращала True или False, в зависимости от того, успешная проверка была или нет
- В CommandButton1_Click прочитать результат выполнения функции в переменную
- Проверить результат, если False, то не выполнять "другой код"
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894819
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Call означает, что идём в Sub, а Вам нужно идти в Function, потому, что она после работы может нечто вернуть, вот и пишете
в строке где Call проверка Да_или_Нет
а саму функцию пишите так: Function проверка(Да_или_Нет)
и поболее Debug.Print добавьте в код-осознание придёт....
не забудьте объявить булевую переменную Да_или_Нет
Option Explicit в самом верху поможет не забыть.....
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894849
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
катастрофа, подскажите правильно ли я пользуюсь immediate?
в окне immediate: только как Debug.Print в коде работает?

Код: vbnet
1.
2.
Debug.Print Trim(UserForm1.Controls("TextBox" & i)) = "" (интер)
True



и все это в момент выполнения кода!
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39894913
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei,
Debug.Print это типа инфа, просто подводить курсор к нужному не всегда удобно, и не всегда показывает
то есть
Код: vbnet
1.
Debug.Print Trim(UserForm1.Controls("TextBox" & i))


и никаких =, присваиваний
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39895167
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа
и никаких =, присваиваний
Ну почему же? Можно и присваивать, можно просто переменную посмотреть. В случае наличия сравнения
Код: vbnet
1.
Trim(UserForm1.Controls("TextBox" & i)) = ""


в Immediate будет выведено True или False. Если там целое выражение - то оно выполнится и результат будет выведен.
Только как всегда неясно как и где это применяет наш ТС. Если не использовать Debug.Print, то можно в окне Immediate написать:
Код: vbnet
1.
?Trim(UserForm1.Controls("TextBox" & i)) = ""


Т.е. сначала вопр.знак, потом выражение или переменную и нажать Enter(вопр.знак по сути просто заменяет длинную запись debug.Print при работе в Immediate, но можно вместо него прямо так и писать - debug.Print "выражение"). При этом, если не поставить вопр.знак, то выражение выполнится в Run-time, т.е. таким образом можно "на лету" изменить значение переменной во время отладки. И даже выполнить целую конструкцию. Например:
Код: vbnet
1.
For i& = 1 to 10: ii& = ii&+i: next:debug.Print ii&


Это просто записывается в Immediate и нажимается Enter.

assei , вроде уже говаривалось не один раз: ну начните уже что-то читать по VBA, а не пальцем тыкать куда ни попадя. Себе же время сэкономите. Потому как уже не один месяц топчитесь вокруг азов программирования VBA и все как-то не очень продуктивно. Вопросы по азам да по азам, никакого прогресса :)
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39895168
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,
не знал такого, так-что ТС, сорри, если ввёл в заблуждение
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39895174
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist
assei , вроде уже говаривалось не один раз: ну начните уже что-то читать по VBA, а не пальцем тыкать куда ни попадя. Себе же время сэкономите. Потому как уже не один месяц топчитесь вокруг азов программирования VBA и все как-то не очень продуктивно. Вопросы по азам да по азам, никакого прогресса :)
Я бы добавил, что к тому, что пишет Эндрю (ака катастрофа) нужно относиться крайне осторожно, потому что как бы ни была низка твоя квалификация, у него она еще ниже.
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39896235
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, вопрос решил так и поверьте ни кто не помогал просто сам без метода тыка только проверка на TRUE - FALSE
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
'в модуле
Public i
Sub проверка()
'Stop
For i = 1 To 3
If UserForm1.Controls("TextBox" & i) = "" Then
    UserForm1.Controls("TextBox" & i).BackColor = &H80C0FF
        MsgBox "Выделенные поля обязательны для заполнения", vbInformation, "Информация"
            Exit Sub
                End If
Trim (UserForm1.Controls("TextBox" & i)) > 0
    UserForm1.Controls("TextBox" & i).BackColor = &H80000005
Next i
i = False
End Sub



Код: vbnet
1.
2.
3.
4.
5.
6.
'на кнопке
Private Sub CommandButton1_Click()
Call проверка
If i > 0 Then Exit Sub
MsgBox "сообщение"
End Sub
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39896240
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже ближе. Этот код работает, но он плохой по двум причинам:
1) используется Public переменная вместо использования возврата значения из функции
2) одна и та же переменная используется для хранения разных типов значений и разных предметов по сути
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39896294
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.
Public f As Double
Sub проверка()
'Stop
For i = 1 To 3
If UserForm1.Controls("TextBox" & i) = "" Then
    UserForm1.Controls("TextBox" & i).BackColor = &H80C0FF
        MsgBox "поле пустое", vbInformation, "сообщение"
            Exit Sub
                End If
Trim (UserForm1.Controls("TextBox" & i)) > 0
    UserForm1.Controls("TextBox" & i).BackColor = &H80000005
Next i
If i > 0 Then
i = f
f = True
End If

Private Sub CommandButton1_Click()
Call проверка
If f = 0 Then Exit Sub
MsgBox "другой код"
End Sub
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39896305
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1)
assei
Код: vbnet
1.
i = f

вот это для чего?

2)
assei
Код: vbnet
1.
f As Double

assei
Код: vbnet
1.
f = True

почему тип не соответствует?

3)Нигде нет f = False, это значит программа сработает корректно только один раз, при повторном нажатии кнопки будет выдавать неверные результаты

4)По-прежнему используется Public
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39896499
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наверное так!

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public i ' но без нее ни как
Sub проверка()
Dim f As Boolean
For i = 1 To 3
If UserForm1.Controls("TextBox" & i) = "" Then
    UserForm1.Controls("TextBox" & i).BackColor = &H80C0FF
        MsgBox "поле пустое", vbInformation, "!"
            Exit Sub
                End If
Trim (UserForm1.Controls("TextBox" & i)) > 0
    UserForm1.Controls("TextBox" & i).BackColor = &H80000005
Next i
If i <> f Then
i = True
End If
End Sub

Private Sub CommandButton1_Click()
Call проверка
If i > 0 Then Exit Sub
MsgBox "сообщение"
End Sub
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39896515
assei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
по совету (катастрофа) изменил правильнее будет
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub проверка()
Dim f As Boolean
For i = 1 To 3
If Len(Trim(UserForm1.Controls("TextBox" & i))) = 0 Then '
    UserForm1.Controls("TextBox" & i).BackColor = &H80C0FF
        MsgBox "поле пустое", vbInformation, "!"
            Exit Sub
                End If
If Len(Trim(UserForm1.Controls("TextBox" & i))) > 0 Then
    UserForm1.Controls("TextBox" & i).BackColor = &H80000005
    End If
Next i
If i <> f Then
i = True
End If
End Sub
...
Рейтинг: 0 / 0
Проверка TextBox на пустоту
    #39896530
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assei
наверное так!
теперь написан полный бред


assei
по совету (катастрофа)
про его советы я тебе выше уже говорил

assei
Код: vbnet
1.
но без нее ни как

я уже два раза говорил, что нужно сделать. Или три.
...
Рейтинг: 0 / 0
22 сообщений из 72, страница 3 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проверка TextBox на пустоту
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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