|
Postada em 07/03/2007 10:24 hs
Nos campos que são para valores eu formatei o Keypress para aceitar apenas números de 0 a 9 e a vírgula. No LostFocus eu formato a informação para #,##0.00, assim o usuário não precisa se preocupar em fazer a separação centesimal. Só que se o usuário digitar 12,435,33, na hora de gravar esta informação no campo numérico do Access, o programa dá um erro. Tem como eu verificar se o usuário digitou mais de uma vírgula e chamar a atenção dele para corrigir isto, ou retirar esta virgula a mais e incorreta de forma automática?
|
|
|
|
CSRocha
|
BRASILIA DF - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 07/03/2007 19:16 hs
Eu uso orientar o usuário a não usar vírgulas nem ponto decimal, colocando 00 quando o valor for sem centavos. Faço isso num label de fundo vermelho, que só fica visivel quando o foco cai nesse campo.
Depois, no lostfocus faço a formatação.
Outra alternativa é usar o maskedit, mas eu não gosto dele e não uso...
|
|
|
|
Postada em 07/03/2007 19:35 hs
Perk, Faça assim:
Private Sub txtConta_KeyPress(KeyAscii As Integer) If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0 End If End Sub Private Sub txtConta_LostFocus() txtConta.Text = Format$(txtConta.Text, "#,##0.00") End Sub
http://www.vilmarbro.com.br
|
|
|
|
Postada em 07/03/2007 20:22 hs
Exatamente como mostra o Vilmar, esqueci de detalhar a crítica no KeyPress para só aceitar números...
Abs.
|
|
|
|
Postada em 07/03/2007 22:10 hs
Esta maneira infelizmente não me serve, pois o usuário precisa digitar a vírgula. Desta forma, ele se precisar digitar 12,34, vai digitar 1234 e ao perder o focus o campos ficará com o valor de 1.234,00. É necessário a digitação da vírgula, ams só de uma. Como impedir que seja digitada mais de uma ?
|
|
|
|
Postada em 07/03/2007 22:11 hs
Percebi agora que o assunto do tópico eu digitei errado. o certo é: Como evitar a digitação de uma vírgula duas vezes ?
|
|
|