KEYPRESS
Galera tenho um problema no keypress, quando faço a busca ele entra
aqui Private Sub txtdes_KeyPress(KeyAscii As Integer) e logo depois vai para o end sub.
'Eu preciso que ele entre aqui nesta validação aqui embaixo.
If KeyAscii = 13 Then
SendKeys ("tab")
End If
Dim tb As String
tb = "select Descricao, Valor from tbmercadoria where Codigo like '" & txtdes.Text & "%'"
Set tbsql = con.Execute(tb)
Do Until tbsql.EOF
txtdes.Text = tbsql("descricao")
txtval.Text = tbsql("valor")
tbsql.MoveNext
Loop
End Sub
aqui Private Sub txtdes_KeyPress(KeyAscii As Integer) e logo depois vai para o end sub.
'Eu preciso que ele entre aqui nesta validação aqui embaixo.
If KeyAscii = 13 Then
SendKeys ("tab")
End If
Dim tb As String
tb = "select Descricao, Valor from tbmercadoria where Codigo like '" & txtdes.Text & "%'"
Set tbsql = con.Execute(tb)
Do Until tbsql.EOF
txtdes.Text = tbsql("descricao")
txtval.Text = tbsql("valor")
tbsql.MoveNext
Loop
End Sub
Private Sub txtdes_KeyPress(KeyAscii As Integer) 'e logo depois vai para o end sub.
'Eu preciso que ele entre aqui nesta validação aqui embaixo.
If KeyAscii = 13 Then
Dim tb As String
tb = "select Descricao, Valor from tbmercadoria where Codigo like '" & txtdes.Text & "%'"
Set tbsql = con.Execute(tb)
If Not tbsql.EOF Then
txtdes.Text = tbsql("descricao")
txtval.Text = tbsql("valor")
else
MsgBox("Mercadoria não cadastrada")
End If
SendKeys ("tab")
End If
End Sub
'Eu preciso que ele entre aqui nesta validação aqui embaixo.
If KeyAscii = 13 Then
Dim tb As String
tb = "select Descricao, Valor from tbmercadoria where Codigo like '" & txtdes.Text & "%'"
Set tbsql = con.Execute(tb)
If Not tbsql.EOF Then
txtdes.Text = tbsql("descricao")
txtval.Text = tbsql("valor")
else
MsgBox("Mercadoria não cadastrada")
End If
SendKeys ("tab")
End If
End Sub
Não está legal fazer a validação no evento _KeyPress. Melhor validar no evento _VALIDATE, ou seja,
toda vez que o usuário sair de uma textbox (via enter, tab ou click do mouse) o evento _VALIDATE da textbox será executado. Exemplo:
At,
toda vez que o usuário sair de uma textbox (via enter, tab ou click do mouse) o evento _VALIDATE da textbox será executado. Exemplo:
Private Sub txtdes_VALIDATE(KeepFocus as Boolean)
Dim tb As String
tb = "select Descricao, Valor from tbmercadoria where Codigo like '" & txtdes.Text & "%'"
Set tbsql = con.Execute(tb)
If Not tbsql.EOF Then
txtdes.Text = tbsql("descricao")
txtval.Text = tbsql("valor")
else
MsgBox("Mercadoria não cadastrada")
KeepFocus = True
txtdes.SetFocus
End If
End Sub
At,
Testei o evento validate mas não deu certo.
DENISSON, teste ai a seguinte modificação:
Private Sub txtdes_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii=0
Dim tb As String
tb = "select Descricao, Valor from tbmercadoria where Codigo like '" & txtdes.Text & "%'"
Set tbsql = con.Execute(tb)
Do Until tbsql.EOF
txtdes.Text = tbsql("descricao")
txtval.Text = tbsql("valor")
tbsql.MoveNext
Loop
SendKeys ("tab")
end if
End Sub
Private Sub txtdes_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Dim tb As String
tb = "select Descricao, Valor from tbmercadoria where Codigo like '" & txtdes.Text & "%'"
Set tbsql = con.Execute(tb)
If Not tbsql.EOF Then 'Nao coloquei em loop, pois acho que só existe uma marcadoria
txtdes.Text = tbsql("descricao")
txtval.Text = tbsql("valor")
else
MsgBox("Mercadoria não cadastrada")
End If
KeyAscii = 0
SendKeys "{TAB}" 'Observe o modo como estou colocando TAB
End If
End Sub
If KeyAscii = 13 Then
Dim tb As String
tb = "select Descricao, Valor from tbmercadoria where Codigo like '" & txtdes.Text & "%'"
Set tbsql = con.Execute(tb)
If Not tbsql.EOF Then 'Nao coloquei em loop, pois acho que só existe uma marcadoria
txtdes.Text = tbsql("descricao")
txtval.Text = tbsql("valor")
else
MsgBox("Mercadoria não cadastrada")
End If
KeyAscii = 0
SendKeys "{TAB}" 'Observe o modo como estou colocando TAB
End If
End Sub
DENISSON,
Qual erro deu no evento VALIDATE?
Citação:Testei o evento validate mas não deu certo.
Qual erro deu no evento VALIDATE?
Então o que acontece é que quando eu faço a pesquisa ele busca pela primeira letra que digito, eu queria digitar a palavra inteira e quando eu apertar o entrer ele faz a pesquisa.
O Evento _Validate ocorre quando vc aperta o ENTER na textbox (ao término da digitação na textbox).
é disparado da mesma maneira que o _LostFocus, só que você pode dar um CANCEL na textbox sem fazer a validação usando _Validate.
Não entendi o que não está funcionando com o evento _Validate.
Qual é o erro?
é disparado da mesma maneira que o _LostFocus, só que você pode dar um CANCEL na textbox sem fazer a validação usando _Validate.
Não entendi o que não está funcionando com o evento _Validate.
Qual é o erro?
Ele aparece escrito (tab) e não faz a pesquisa.
Então Roberto ele não esta entrando no evento validate.
Tópico encerrado , respostas não são mais permitidas