VALIDAR CAMPOS VAZIOS

BORTHOLETTO 15/12/2011 14:35:23
#391436
boa tarde

eu tenho um formulário com 3 tipos de componentes (textbox ,combobox, maskedbox), e tenho vários campos obrigatórios que não podem ficar em branco.

como faço para faze essa validação???


obrigado
KERPLUNK 15/12/2011 14:43:40
#391437
No momento de gravar:
If txtNomeCampo.Text = [Ô][Ô] then
msgbox [Ô]Tem que preencher o campos XXX[Ô]
exit sub
end if
BORTHOLETTO 15/12/2011 14:44:54
#391438
mas tenho muitas campos não teria uma função para varrer todos???
KERPLUNK 15/12/2011 14:58:10
#391439
For Each controle In Me.Controls
If TypeOf controle Is TextBox Then
[ô]validar textbox
End If
If TypeOf controle Is ComboBox Then
[ô]validar combobox
End If
Next controle
BORTHOLETTO 15/12/2011 15:10:13
#391440
nesse caso vai validar todos?..pois não seria todos!!!!!

valeuuu
KERPLUNK 15/12/2011 15:28:37
#391442
Esse loop que passei, vai percorrer todos os objetos dentro do form. Você verifica por tipo e em seguida por nome (controle.Name) e faz a validação dos objetos que quiser...
LLAIA 16/12/2011 15:36:01
#391519
Só pra complementar, alguns formulários podem não exigir que certos controles sejam preenchidos, sendo assim, após a verificação do tipo de controle, pode ser feito uma verificação se o controle é ou não obrigatório.
Eu já fiz isso usando a propriedade Tag do controle, onde eu coloquei um caractere pra indicar se o controle é obrigatório.
PHOENIX209E 16/12/2011 15:58:51
#391526
Cara dessa vez eu vou ser chato...
Vou passar este trecho pra voce entender como funfa..

  Dim c As Control
For Each c In Me.Controls
If (TypeOf c Is TextBox Or TypeOf c Is ComboBox Or TypeOf c Is MaskedTextBox And c.Tag = Nothing) Then
If (c.Text = Nothing) Then
MsgBox([Ô]Campo [Ô] & c.Name & [Ô] Nao foi preenchido![Ô])
Else
MsgBox([Ô]Campo [Ô] & c.Name & [Ô] está OK[Ô])
End If
End If
Next


coloca isso num button
KERPLUNK 16/12/2011 16:03:55
#391529
Qual o problema?
Sintaticamente está correto, mas o que vc quer fazer?
PHOENIX209E 16/12/2011 16:17:11
#391530
Percorre um TabControl

For Each c In Me.Controls
If (TypeOf c Is TabControl) Then
For Each pages As TabControl In DirectCast(c, TabControl).TabPages
For Each texto As Control In pages.Controls
[ô]PROCURA OS OBJETOS QUE TENHAM A PROPRIEDADE TEXT
For Each texto As Control In pages.Controls
If (TypeOf texto Is TextBox Or TypeOf texto Is ComboBox Or TypeOf texto Is MaskedTextBox And texto.Tag = Nothing) Then
If (texto.Text = Nothing) Then
MsgBox([Ô]Campo [Ô] & texto.Name & [Ô] Nao foi preenchido![Ô])
Else
MsgBox([Ô]Campo [Ô] & texto.Name & [Ô] está OK[Ô])
End If
End If
Next
Next
Next
End If
MARCELO.TREZE 16/12/2011 21:43:55
#391549
Resposta escolhida
Explicação simples e objetiva, em todos os controles que não podem ficar em branco, coloque um (*) asterisco na propriedade tag.

ex: o text1 não pode ficar vazio, então na propriedade tag do mesmo coloque *, ja o text2 pode ficar vazio, então não coloque nada na propriedade tag do text2.

em um botão cole o código

Private Sub Command1_Click()
Dim c As Control
For Each c In Me.Controls
If (TypeOf c Is TextBox Or TypeOf c Is ComboBox And c.Tag = [Ô]*[Ô]) Then
If (c.Text = [Ô][Ô]) Then
MsgBox ([Ô] O campo [Ô] & c.Name & [Ô] é obrigatório![Ô])
c.SetFocus
End If
End If
Next
End Sub


e pronto ta explicado e funcionando
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas