MOSTRAR MENSAGEM ATE PRESSIONAR ENTER
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
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
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
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
Explique no tópico o que a aplicação [Ô]DEVERIA FAZER[Ô].
Desta forma poderemos sugerir uma outra solução, ou simplesmente, alterar a sua.
Desta forma poderemos sugerir uma outra solução, ou simplesmente, alterar a sua.
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.
[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.
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