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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  trocar virgula por ponto
ventana
SANTOS
SP - BRASIL
ENUNCIADA !
Postada em 17/02/2008 19:43 hs            
Ola Amigo

Eu uso o evento abaixo para a digitacao de numeros e dentro dele coloco uma funcao para trocar a virgula pelo ponto e tambem defino o numero de casas decimais.

Private Sub MskUsdClaimValor_KeyPress(KeyAscii As Integer)
Dim Virgula As Byte

If SoNumero(KeyAscii) = True Then
   MskUsdClaimValor.Text = ""
End If

KeyAscii = TratarNumeroDecimal(KeyAscii, MskUsdClaimValor)

Virgula = InStr(1, MskUsdClaimValor.Text, ",")

If Virgula > 0 And MskUsdClaimValor.SelStart >= Virgula Then
   If Len(Mid(MskUsdClaimValor.Text, InStr(1, MskUsdClaimValor.Text, ",") + 1)) = 2 Then
      KeyAscii = 0
   End If
Else

  If Chr(KeyAscii) = "," And InStr(1, MskUsdClaimValor.Text, ",") > 0 Then
     KeyAscii = 0
  End If
End If
End Sub


Aqui defino o numero de casas decimais que neste caso e igual a 2.

If Len(Mid(MskUsdClaimValor.Text, InStr(1, MskUsdClaimValor.Text, ",") + 1)) = 2


Funcao so numero.Utilizada para permitir a digitacao de apenas numeros.

Function SoNumero(intNumero As Integer) As Boolean
Dim strTexto As String
strTexto = "Important"
    If intNumero <> 8 And intNumero <> 13 And intNumero <> 44 And intNumero <> 46 And (intNumero < 48 Or intNumero > 57) Then
        MsgBox "Numeric Field Is Required !", vbCritical, strTexto
        intNumero = 27
        SoNummero = True
        Exit Function
    End If
    SoNummero = False
End Function


Funcao TratarNumeroDecimal Troca a virgula pelo ponto

Public Function TratarNumeroDecimal(intAscii As Integer, ByRef oControle As Object) As Integer
    Dim i As Integer
    
    'DEIXA SER DIGITADA SOMENTE A CADEIA DE CARACTERES : "0123456789.,"
    If InStr("0123456789.,", Chr(intAscii)) = 0 And intAscii <> 8 Then
        TratarNumeroDecimal = 0
        Exit Function
    End If

    'TROCA AO VÍRGULA pelo PONTO
    If intAscii = 44 Then
        intAscii = 46
    End If
    
    'NÃO PERMITE A DIGITAÇÃO DE VÁRIAS VÍRGULAS
    For i = 1 To Len(oControle)
        If Mid(oControle, i, 1) = Chr(intAscii) And intAscii = 44 Then
            TratarNumeroDecimal = 0
            Exit Function
        End If
    Next i
        
    TratarNumeroDecimal = intAscii

End Function


Boa Programacao
   
IceEyes
BRASIL
MS - BRASIL
ENUNCIADA !
Postada em 18/02/2008 09:30 hs            
No meu teclado numérico tem a vírgula no lugar do ponto, só que dou comando sql
tipo

dat.execute "Insert Into Tabela (Valor1,Valor2) Values (" & cdbl(txt1) & "," & cdbl(txt2) & "(;"

mas o problema é que se tenho txt1=10,2 ou o mesmo vale para o txt2, dá erro q campos ñ coisidem.... entao eu gostaria de trocar a virgula pelo ponto mas na tela aparece com format(txt1,"###,###.00")

   
Delcio (DelSf)
SANTO ANDRÉ
SP - BRASIL
ENUNCIADA !
Postada em 20/02/2008 22:20 hs         
no evento keypress do textbox coloque
if keyAscii = Asc(",") then keyAscii = Asc(".")
   
Página(s): 2/2     « ANTERIOR  


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



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