|
Postada em 23/07/2008 10:03 hs
Pessoal, tem um sistema nosso que deixa alguns text no seguinte formato:
0,0000
Há a necessidade do usuário digitar a vírgula e assim deve continuar sendo, porém acaba que às vezes digitam mais de uma vírgula e aí que vem o problema, pelo fato do campo no banco ser um float...
Tem alguma dica de como arrumar isso?
Pensei em MaskEdit mas não é uma boa saída, pois o usuário deve digitar a vírgula... alguma solução?
Vlw pessoal
|
|
|
|
lramos7
|
BARUERI SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 23/07/2008 10:40 hs
'Algo simples, mais funciona. 'No momento em que perder o foco do text crie uma função para limpar o excesso de virgulas e 'atualizar o text. 'Vai um exemplo: Private Sub Text1_LostFocus() Text1.Text = LimpaCampo(Trim(Text1.Text)) End Sub Public Function LimpaCampo(ByVal lStr As String) As String Dim i As Integer Dim y As Integer For i = 1 To Len(Text1.Text) If Mid(lStr, i, 1) = "," And y = 0 Then LimpaCampo = LimpaCampo & Mid(lStr, i, 1) y = 1 Else If Mid(lStr, i, 1) <> "," Then LimpaCampo = LimpaCampo & Mid(lStr, i, 1) y = 0 End If End If Next i End Function
T+
Leandro Ramos msn: nanoenana@hotmail.com
|
|
|
|
Postada em 23/07/2008 10:45 hs
'Corrigindo, y não pode colocar = 0 no segundo if 'Segue a correção. Abracos Private Sub Text1_LostFocus() Text1.Text = LimpaCampo(Trim(Text1.Text)) End Sub Public Function LimpaCampo(ByVal lStr As String) As String Dim i As Integer Dim y As Integer For i = 1 To Len(Text1.Text) If Mid(lStr, i, 1) = "," And y = 0 Then LimpaCampo = LimpaCampo & Mid(lStr, i, 1) y = 1 Else If Mid(lStr, i, 1) <> "," Then LimpaCampo = LimpaCampo & Mid(lStr, i, 1) End If End If Next i End Function
Leandro Ramos msn: nanoenana@hotmail.com
|
|
|
|
Postada em 23/07/2008 10:56 hs
Obrigado Amigo, só uma correção na função o for utilizado está incorreto... você pega o Len do Text invés da variável lStr
correção abaixo: Obs: Mudei o nome da função =]
Public Function LimpaVirgulas(ByVal lStr As String) As String Dim i As Integer Dim y As Integer For i = 1 To Len(lStr) If Mid(lStr, i, 1) = "," And y = 0 Then LimpaVirgulas = LimpaVirgulas & Mid(lStr, i, 1) y = 1 Else If Mid(lStr, i, 1) <> "," Then LimpaVirgulas = LimpaVirgulas & Mid(lStr, i, 1) End If End If Next i End Function
|
|
|
|
Postada em 23/07/2008 11:09 hs
Ops... verdade. Obrigado. Abraços
|
|
|
|