VALIDANDO TEXTBOX VAZIO
Pessoal, eu tenho em um form 05 textbox, ao confirmar uma rotina como eu verefico todos eles e se um deles estiver vazio dou um SetFocus no mesmo? Estou tentando assim:
Dim i As Integer
For i = (Me.Controls.Count - 1) To 0 Step -1
If TypeName(Me.Controls(i)) = [Ô]TextBox[Ô] Then
Me.Controls(i).SetFocus
End If
Next
porem não seta o que esta vazio.
Grato
Dim i As Integer
For i = (Me.Controls.Count - 1) To 0 Step -1
If TypeName(Me.Controls(i)) = [Ô]TextBox[Ô] Then
Me.Controls(i).SetFocus
End If
Next
porem não seta o que esta vazio.
Grato
Você não validou a propriedade [Ô]text[Ô]
Private Sub Command1_Click()
Dim i As Integer
For i = (Me.Controls.Count - 1) To 0 Step -1
If TypeName(Me.Controls(i)) = [Ô]TextBox[Ô] Then
If Me.Controls(i).Text = [Ô][Ô] Then
Me.Controls(i).SetFocus
End If
End If
Next
End Sub
veja esta função
alem da função acima dizer que um textbox esta vazio ela descaca o mesmo com uma cor diferente
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
Private Sub Command1_Click()
If Vazio(Me) = True Then
Msgbox [Ô]Campo vazio[Ô]
End If
End Sub
alem da função acima dizer que um textbox esta vazio ela descaca o mesmo com uma cor diferente
Marcelo, usei sua função e realmente isso que eu queria porem, quando dá a msg e ao sai dela cai aqui nessa linha:
(If MsgBox([Ô]Você confirma a inclusão deste registro?[Ô], vbYesNo + vbExclamation, [Ô]Cadastro[Ô]) = vbYes Then). Onde posso colocar um ExitFunction na sua função para evitar isso?
Private Sub ConfirmarCadastro()
If Vazio(Me) = True Then
If TxtNome.Text = [Ô][Ô] And TxtMat.Text = [Ô][Ô] Or TxtFuncao.Text = [Ô][Ô] Or TxtSetor.Text = [Ô][Ô] Or TxtCC.Text = [Ô][Ô] Or TxtData.Text = [Ô][Ô] Or CboStatus.Text = [Ô][Ô] Then
MsgBox [Ô]Os campos salientados deverão ser preenchido corrretamente não pode haver campo nulo.[Ô]
End If
Sql = [Ô][Ô]
If MsgBox([Ô]Você confirma a inclusão deste registro?[Ô], vbYesNo + vbExclamation, [Ô]Cadastro[Ô]) = vbYes Then
Sql = [Ô]INSERT INTO Dados(Titulo,Numero,Funcao,Setor,[Ô]
Sql = Sql & [Ô]CCusto,Data1,Status,ID)[Ô]
Sql = Sql & [Ô]VALUES([Ô]
Sql = Sql & [Ô][ô][Ô] & TxtNome.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtMat.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtFuncao.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtSetor.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtCC.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtData.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & CboStatus.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & Lb_Codigo.Caption & [Ô][ô])[Ô]
ConexaoEPI.BeginTrans
ConexaoEPI.Execute (Sql)
DoEvents
ConexaoEPI.CommitTrans
MsgBox [Ô]Funcionário cadastrado com sucesso[Ô], vbInformation, [Ô]Cadastro[Ô]
Call CarregaDados
CtrObjetos 3, Me
Else
CmdCancel_Click
End If
End If
End Sub
(If MsgBox([Ô]Você confirma a inclusão deste registro?[Ô], vbYesNo + vbExclamation, [Ô]Cadastro[Ô]) = vbYes Then). Onde posso colocar um ExitFunction na sua função para evitar isso?
Private Sub ConfirmarCadastro()
If Vazio(Me) = True Then
If TxtNome.Text = [Ô][Ô] And TxtMat.Text = [Ô][Ô] Or TxtFuncao.Text = [Ô][Ô] Or TxtSetor.Text = [Ô][Ô] Or TxtCC.Text = [Ô][Ô] Or TxtData.Text = [Ô][Ô] Or CboStatus.Text = [Ô][Ô] Then
MsgBox [Ô]Os campos salientados deverão ser preenchido corrretamente não pode haver campo nulo.[Ô]
End If
Sql = [Ô][Ô]
If MsgBox([Ô]Você confirma a inclusão deste registro?[Ô], vbYesNo + vbExclamation, [Ô]Cadastro[Ô]) = vbYes Then
Sql = [Ô]INSERT INTO Dados(Titulo,Numero,Funcao,Setor,[Ô]
Sql = Sql & [Ô]CCusto,Data1,Status,ID)[Ô]
Sql = Sql & [Ô]VALUES([Ô]
Sql = Sql & [Ô][ô][Ô] & TxtNome.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtMat.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtFuncao.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtSetor.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtCC.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & TxtData.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & CboStatus.Text & [Ô][ô],[Ô]
Sql = Sql & [Ô][ô][Ô] & Lb_Codigo.Caption & [Ô][ô])[Ô]
ConexaoEPI.BeginTrans
ConexaoEPI.Execute (Sql)
DoEvents
ConexaoEPI.CommitTrans
MsgBox [Ô]Funcionário cadastrado com sucesso[Ô], vbInformation, [Ô]Cadastro[Ô]
Call CarregaDados
CtrObjetos 3, Me
Else
CmdCancel_Click
End If
End If
End Sub
Marcelo:
Interessante a função que destaca o textbox. Nunca tinha pensado nisso. Eu sempre mostrava uma mensagem e setava o focus.
Interessante a função que destaca o textbox. Nunca tinha pensado nisso. Eu sempre mostrava uma mensagem e setava o focus.
MsgBox [Ô]O campo [Ô] & Controle.Tag & [Ô] não foi preenchido![Ô], vbOKOnly + vbInformation, [Ô]Cliente[Ô]
Controle.SetFocus
coloque um exit sub aqui
If Vazio(Me) = True Then
If TxtNome.Text = [Ô][Ô] And TxtMat.Text = [Ô][Ô] Or TxtFuncao.Text = [Ô][Ô] Or TxtSetor.Text = [Ô][Ô] Or TxtCC.Text = [Ô][Ô] Or TxtData.Text = [Ô][Ô] Or CboStatus.Text = [Ô][Ô] Then
MsgBox [Ô]Os campos salientados deverão ser preenchido corrretamente não pode haver campo nulo.[Ô]
Exit Sub[ô]<------aqui
End If
If Vazio(Me) = True Then
If TxtNome.Text = [Ô][Ô] And TxtMat.Text = [Ô][Ô] Or TxtFuncao.Text = [Ô][Ô] Or TxtSetor.Text = [Ô][Ô] Or TxtCC.Text = [Ô][Ô] Or TxtData.Text = [Ô][Ô] Or CboStatus.Text = [Ô][Ô] Then
MsgBox [Ô]Os campos salientados deverão ser preenchido corrretamente não pode haver campo nulo.[Ô]
Exit Sub[ô]<------aqui
End If
Valeu Marcelo!!! Ótima função.
disponha colega
Tópico encerrado , respostas não são mais permitidas