USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Problema vírgulas
Lucas Felix
SÃO PAULO
SP - BRASIL
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

   
lramos7
BARUERI
SP - BRASIL
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

     
Lucas Felix
SÃO PAULO
SP - BRASIL
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
     
lramos7
BARUERI
SP - BRASIL
Postada em 23/07/2008 11:09 hs            
Ops... verdade. Obrigado.
 
Abraços
 
 
 
 
 
     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página