VERIFICAR SE A TEXTBOX EST? VAZIA

MARIOANDRADE 20/09/2014 07:36:17
#441376
Meus amigos estou tentando criar um programinha simples de cadastro onde preciso verificar se todas as textbox foram preenchidas.
O problema é que são muitas e eu teria que usar um código ainda maior que este:
if txtnomeLocador.text = [Ô][Ô] or txtcpfLocador.text = [Ô][Ô] or txtendLocador.text = [Ô][Ô] or txtnumLocador.text = [Ô][Ô] or txtbairroLocador.text = [Ô][Ô] then



Eu queria um código que verificasse se alguma das textbox dentro de um determinado Frame está vazia e parasse o código.
Eu adaptei o código abaixo para ficar vermelho quando estiver vazio, o problema é que ele pega todas as textbox do formulario, eu preciso
separar por frames.

Public Function Verifica(formulario As Form)
Dim controle As Control
Dim i As Integer

For i = 0 To formulario.Controls.Count - 1
Set controle = formulario.Controls(i)

If TypeOf controle Is txt Then

[ô]O código original era apenas: controle.Text = [Ô][Ô]
If controle.Text = [Ô][Ô] Then controle.BackColor = vbRed

End If
Next i
End Function


Se tiver como fazer essa verificação apenas para um determinado Frame e que ele não prossiga com o código seria muito bom,
não precisa ser um função pois usarei o código apenas no botão cadastrar.

Desde já agradeço a todos que possam ajudar.
NICKOLASCARLOS 20/09/2014 08:22:12
#441377
Você ñ já tinha feito essa pergunta e outro tópico?
MARIOANDRADE 20/09/2014 08:35:47
#441378
Tinha sim Nickolas, mas estava em VB.NET e eu preciso em VB6.
Obrigado por comentar.
NICKOLASCARLOS 20/09/2014 08:51:28
#441379
Ahh beleza então!
JABA 20/09/2014 09:32:16
#441380
Eu estou sem o vb6 aqui e por isso não consigo testar o codigo.

Tente fazer assim pra ver ser vai:

Public Function Verifica(frame As Frame)
Dim controle As Control
Dim i As Integer
For i = 0 To frame .Controls.Count - 1
Set controle = frame .Controls(i)
If TypeOf controle Is TextBox Then
If controle.Text = [Ô][Ô] Then
controle.BackColor = vbRed
exit for
End if
End If
Next
End Function
MARIOANDRADE 20/09/2014 11:35:11
#441382
Jaba, valeu pela força, eu já tinha tentado algo parecido antes, estou no trabalho e assim que chegar em casa testo e posto.
MARCELO.TREZE 20/09/2014 15:39:18
#441387
Resposta escolhida
Simples e direto

Function Vazio(Formulario as Form) As Boolean
Dim Controle As Control
On Error Resume Next
Vazio = False
For Each Controle In Formulario.Controls
If Trim(Controle.Text)=[Ô][Ô] then
If Err.Number = 0 then
Vazio = True
Controle.BackColor = &HFFC0FF
End If
Err.Clear
Else
If Controle.BackColor = &HFFC0FF then
Controle.BackColor = QBColor(15)
End If
End If
Next Controle
End Function


para usar

Private Sub Command1_Click()
If Vazio(Me) = True Then
Msgbox [Ô]Campo vazio[Ô]
End If
End Sub

MARIOANDRADE 21/09/2014 15:45:38
#441399
Marcelo,

valeu mesmo pela ajuda, mas acho que este código é semelhante ao que postei no inicio, eu preciso de um código que verifique se existe alguma textbox vazia dentro de um determinado frame.

MARCELO.TREZE 21/09/2014 19:28:28
#441402
Entendi, eu não tinha lido o post direito, bom eu não consegui usar a propriedade conteiner do frame, to estudando, então sugiro o seguinte POG

na propriedade tag das textbox da frame especifica coloque um asterisco (*) e coloque no botão este codigo

Private Sub Command1_Click()
Dim controle As Control
For Each controle In Me.Controls
If TypeOf controle Is TextBox Then
If controle.Tag = [Ô]*[Ô] And controle.Text = [Ô][Ô] Then
controle.SetFocus
MsgBox [Ô]o campo não pode ficar vazio[Ô]
End If
End If
Next
End Sub


assim você poderá controlar os textbox que serão verificados

MARIOANDRADE 22/09/2014 21:22:37
#441434
Simplesmente perfeito, valeu mesmo Marcelo
Tópico encerrado , respostas não são mais permitidas