MOSTRAR MENSAGEM ATE PRESSIONAR ENTER

HUBER.FABIO 19/03/2010 13:53:43
#337406
Caros amigos, gostaria que uma mensagem fosse mostrada em um label até que a tecla ENTER seja pressionada, estou fazendo conforme abaixo e não funciona.

No Keypress do meu campo valor se digitado 0 eu digo que o retorno é igual -105

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 And Retorno < 0 Then
KeyAscii = 0
Do
If Retorno = -100 Then
lblmsgtef.Caption = [Ô]O CAMPO VALOR PAGAMETNO NÃO PODE SER VAZIO[Ô]
ElseIf Retorno = -105 Then
lblmsgtef.Caption = [Ô]O CAMPO VALOR PAGAMENTO NÃO PODE SER ZERO[Ô]
End If
Loop Until KeyAscii = 13
End If
End Sub

Não sai do Loop
VBAPRENDE 19/03/2010 16:01:46
#337438
mas dessa forme ele não vai sair mesmo do loop no casa para não travar no loop vc deve usar o DoEvents.

Mas pelo que eu entendei essa linha de raciocinio sua ai não esta muito legal se for possivel explique melhor o que vc quer fazer

TECLA 19/03/2010 18:40:20
#337461
Resposta escolhida
Explique no tópico o que a aplicação [Ô]DEVERIA FAZER[Ô].
Desta forma poderemos sugerir uma outra solução, ou simplesmente, alterar a sua.
PEGUDO 19/03/2010 22:13:27
#337474
Cara, se você quer avisar ao usuário que um campo não pode ficar vazio, evite o loop, tente o seguinte:

[txt-color=#0000f0]Private Sub [/txt-color]Text1_KeyPress(KeyAscii [txt-color=#0000f0]As Integer[/txt-color])
[txt-color=#0000f0] Dim [/txt-color]Valor [txt-color=#0000f0]As Double[/txt-color]

Valor = Val(Text1.Text)

[txt-color=#0000f0]If[/txt-color] KeyAscii = 13[txt-color=#0000f0] Then[/txt-color]
[txt-color=#0000f0]If Not [/txt-color]IsNumeric(Valor) [txt-color=#0000f0]Then[/txt-color]
[txt-color=#0000f0] If[/txt-color] Valor <= 0[txt-color=#0000f0] Then[/txt-color]
Label1.Caption = [Ô]O campo não pode ficar vazio ou conter valores negativos[Ô]
Text1.Text = [Ô][Ô]
Text1.SetFocus
[txt-color=#0000f0] Else[/txt-color]
Text2.SetFocus
Label1.Caption = [Ô][Ô]
[txt-color=#0000f0]End If
End If
End If
End Sub[/txt-color]

Espero ter ajudado.
EDERMIR 21/03/2010 19:31:16
#337560
Modificando o código do PEGUDO:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim Valor As Double

Valor = Val(Text1.Text)

If KeyAscii = 13 Then
If Valor <= 0 Then
msgbox([Ô]VALOR INVÁLIDO. Utilize valores maiores de ZERO.[Ô])
Text1.Text = [Ô][Ô]
Text1.SetFocus
Else
Text2.SetFocus
End If
End If
End Sub
Tópico encerrado , respostas não são mais permitidas