Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09-05-2008, 19:25:55
visual_v visual_v is offline
Gran Participación en el Foro
 
Registrado: ene 2007
Posts: 127
visual_v Valoración +2
Predeterminado Duda con decimales

Por favor, ¿alguien podría decirme como puedo tratar números decimales en VB?
Para empezar, declaro la variable que almacenará el dato decimal como long.
Y luego, le aplico lo siguiente:

Private Sub TxtImporte_KeyPress(KeyAscii As Integer)

Dim c As Integer
If KeyAscii = 13 Then
KeyAscii = 0 ' Para que no "pite"
SendKeys "{tab}" ' Envía una pulsación TAB
ElseIf KeyAscii <> 8 Or KeyAscii = 46 Then ' El 8 es la tecla de borrar (backspace)
' Si después de añadirle la tecla actual no es un número...
'If Not IsNumeric("0" & Text1.Text & Chr(KeyAscii)) Then
If Not IsNumeric(Chr(KeyAscii)) Then
' ... se desecha esa tecla y se avisa de que no es correcta
If KeyAscii = 46 Then
i = InStr(1, TxtImporte.Text, ".", vbTextCompare)
If i <> 0 Then
Beep
KeyAscii = 0
End If
Else
Beep
KeyAscii = 0
End If
End If
End If


End Sub

El problema está en que cuando intento guardar el valor del txt en la variable de tipo long, no coinciden los tipos:
Si fuera doble haría lo siguiente:
importe = CDbl(Form4.TxtImporte.Text)

Pero si es un long, ¿cómo puedo convertirlo? es que no encuentro el método que lo convierta
Gracias de antemano.
Responder Con Cita