Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

validación de precios

Estas en el tema de validación de precios en el foro de Visual Basic clásico en Foros del Web. Hola. Tengo este código para validar que en un textbox solo se ingresen precios mayores o iguales a 0,10 y menores o iguales a 2000. ...
  #1 (permalink)  
Antiguo 08/08/2011, 12:23
 
Fecha de Ingreso: julio-2011
Mensajes: 34
Antigüedad: 12 años, 8 meses
Puntos: 0
validación de precios

Hola. Tengo este código para validar que en un textbox solo se ingresen precios mayores o iguales a 0,10 y menores o iguales a 2000.

Código:
Private Sub Text3_LostFocus()
    Dim preciomenor@
    Dim preciomayor@
    If Len(Trim(Text3.Text)) >= 1 Then
        If IsNumeric(Text3) Then
            preciomenor = "0.10"
            preciomayor = "2000"
            If Text3 < preciomenor Then
                Text3 = ""
                Text3.SetFocus
                MsgBox "No se pueden ingresar precios menores a $0.10", vbCritical, "Atención"
            ElseIf Text3 > preciomayor Then
                Text3 = ""
                Text3.SetFocus
                MsgBox "No se pueden ingresar precios mayores a $2000 ", vbCritical, "Atención"
            End If
        Else
            MsgBox "Lo que ingresó no es un precio"
        End If
    Else
        KeyAscii = 0
    End If
End Sub
Pero no funciona bien. Si pongo un precio mayor a 2000 funciona, porque me sale el mensaje de que no puedo ingresar precios mayores a 2000. Pero si pongo 1 peso o 0,10, no funciona, me sale el mensaje diciendo que no se pueden ingresar precios menores a 0,10(Y en realidad no son menores).

¿Alguien puede ayudarme?

Gracias!
  #2 (permalink)  
Antiguo 08/08/2011, 14:51
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: validación de precios

Hola!!
Probe tu CODE y funciona bien, el problema es que tienes "0.10" en la variable "PrecioMenor" y tu estas ingresando en el Text3 el valor con una coma como separador decimal "0,10", por eso es el error...

O cambias el valor de "PrecioMenor" a "0,10" o introduce por teclado "0.10" y bloqueas las comas.
  #3 (permalink)  
Antiguo 09/08/2011, 23:04
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: validación de precios

Cuando se trata de ingresar y trabajar con números hay que tratarlos como tal, si trabajas con decimales tienes que usar variables de coma flotante (double)
espero que funcione este codigo:

Código:
Private Sub Text3_LostFocus()
    Dim preciomenor as double
    Dim preciomayor as double
    If Len(Trim(Text3.Text)) >= 1 Then
        If IsNumeric(Text3) Then
            preciomenor = 0.10
            preciomayor = 2000
            If val(Text3) < preciomenor Then
                Text3 = ""
                Text3.SetFocus
                MsgBox "No se pueden ingresar precios menores a $0.10", vbCritical, "Atención"
            ElseIf val(Text3) > preciomayor Then
                Text3 = ""
                Text3.SetFocus
                MsgBox "No se pueden ingresar precios mayores a $2000 ", vbCritical, "Atención"
            End If
        Else
            MsgBox "Lo que ingresó no es un precio"
        End If
    Else
        KeyAscii = 0
    End If
End Sub

Etiquetas: precios, vb, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:44.