KEYPRESS

SILVIO.GARCIA 16/08/2007 20:31:30
#231258
faz assim:


Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case KeyCode
Case vbKeyReturn

If Text1.Text <> "" 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
Else
Text1.SetFocus
End If

End Select

End Sub


Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then KeyAscii = 0

End Sub


t+

USUARIO.EXCLUIDOS 17/08/2007 09:21:48
#231296
No exemplo que postei não deu certo?
USUARIO.EXCLUIDOS 17/08/2007 11:01:33
#231330
Silvio o seu deu certo ele deixa digitar, mas ele não consulta no banco e mercadoria que digito ele da a mensagem de não cadastrada.
No keypress da certo mas acho que tenho que mexer em alguma propriedade não me lembro direito.
USUARIO.EXCLUIDOS 17/08/2007 11:14:54
#231339
DENISSON,
Citação:

Ele aparece escrito (tab) e não faz a pesquisa.


Não entendi ainda qual o seu problema. O que vc está digitando na textbox? Tá saindo com TAB ou ENTER?
Se der coloca um projeto com um form e sua textbox pra download e detalha melhor a sua dúvida.
At,
USUARIO.EXCLUIDOS 17/08/2007 12:09:22
#231364
Em função disso (TAB) ou (ENTER) estou postando dois exemplos testados e funcionando, bastando apenas o DENISSON adaptar a necessidade dele, inclusive comentado.

obs.: para o Validate funcionar legal, tem que colocar a propriedade do Form (KeyPreview = True). E no caso do botão fechar (a propriedade CausesValidation = False, pois se não fizer isso, se o foco estiver no campo com validante e clicar no botão fechar, vai ficar pedindo para digitar algo, se tiver com crítica.

para o Validate, no form.

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{TAB}"
End If
End Sub


Aqui vem os exemplos testados:

KeyPress do TextBox (txtDes)
----------------------------
Private Sub txtDes_KeyPress(KeyAscii As Integer)
'Só será acionado a pesquisa se a tecla pressionada for [ENTER]
If KeyAscii = vbKeyReturn Then
If Not Me.txtDes.Text = Empty Then
'Aqui você coloca seu código para pesquisa
If UCase(Me.txtDes.Text) = "PIOLHO" Then
'Se achou seu produto, exibe na TextBox
MsgBox "Piolho foi encontrado, favor limpar sua cabeça", vbCritical, Me.Caption
Else
'Se não achou, diz que produto não foi encontrado
MsgBox "Parabéns sua cabeça está limpa", vbInformation, Me.Caption
End If
Else
'Só deixa pesquisar se for informado o código do produto
MsgBox "Informe o Código do Produto", vbCritical, Me.Caption
End If
End If
End Sub


Validate do (txtDes)
--------------------
Private Sub txtDes_Validate(Cancel As Boolean)
'Neste evento será acionado a pesquisa quando a tecla pressionada for [ENTER] ou [TAB]
If Not Me.txtDes.Text = Empty Then
'Aqui você coloca seu código para pesquisa
If UCase(Me.txtDes.Text) = "PIOLHO" Then
'Se achou seu produto, exibe na TextBox
MsgBox "Piolho foi encontrado, favor limpar sua cabeça", vbCritical, Me.Caption
Cancel = True
Else
'Se não achou, diz que produto não foi encontrado
MsgBox "Parabéns sua cabeça está limpa", vbInformation, Me.Caption
End If
Else
'Só deixa pesquisar se for informado o código do produto
MsgBox "Informe o Código do Produto", vbCritical, Me.Caption
Cancel = True
End If
End Sub

'Aqui no validete não precisa se preocupar com o SetFocus para outro campo, pois conforme configuração do KeyPreview do Form, os campos serão saltados automaticamente.

Espero que entenda a lógica.

USUARIO.EXCLUIDOS 17/08/2007 12:11:40
#231366
No evento validate ele não faz nada nem chega a entrar no validate, no keypress quando eu aperto o enter ele aparece escrito na frente a palavra (tab). anexei ele ai.
Página 2 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas