Access - Redondeo y validación

   
Vista:

Redondeo y validación

Publicado por Muldrigo (9 intervenciones) el 26/08/2015 15:36:52
Buenas a todos

Tengo un campo de [PVP] , al que en ocasiones aplico un [DESCUENTO], al terminar de rellenar los datos del registro pulso un boton de [GUARDAR] y paso a un nuevo registro.

Al pulsar [GUARDAR] tengo otros dos campos [TARJETA] y [EFECTIVO] entre los que tiene que dar la suma de [PVP] y si no es correcta la suma sale un cuadro de mensaje con el aviso correspondiente.

En principio fucniona correctamente, salvo cuando el importe calculado con descuento tiene decimales

EJEMPLO:

_______OK________
Precio art = 250
Descuento = 50%
PVP = 125
[TARJETA] + [EFECTIVO] = [PVP]
_______OK________

_____ERROR______
Precio art = 255
Descuento = 50%
PVP = 127,5
[TARJETA] + [EFECTIVO] <> [PVP]
_____ERROR______


El error creo que lo da porque el campo [PVP] tiene 0 decimales, redondeando en el ejemplo anterior a 128.


La solución facil sería entonces permitir los decimales, pero las ventas tienen que ser con numeros enteros, etonces ¿cómo podría a la hora de hacer el descuento obligar a que me de un numero entero?


Saludos, espero haberme explicado bien.

PD: Este es el código que uso para actualizar el [PVP] al aplicar el descuento
1
2
3
Private Sub Descuento_AfterUpdate()
If Descuento <> "" Then PVP_1 = (Uds_Venta * PVP) - ((Uds_Venta * PVP) * (Descuento / 100)) Else: PVP_1 = Uds_Venta * PVP
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Redondeo y validación

Publicado por Muldrigo (9 intervenciones) el 26/08/2015 16:56:07
Perdón tendría a que a ver buscado antes un poco mas, con Fix, Round e Int, puedo hacer lo que quería, salvo que el redondeo me gustaria que cuando tenga por ejemplo round(0,5) de 1 y no 0, podría hacerlo de alguna anera?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Redondeo y validación

Publicado por Enrique Heliodoro (1663 intervenciones) el 26/08/2015 17:21:52
No es tan complicado, se le suma .5 y que (quien corresponda) reparta suerte.

Si el decimal es igual o superior a .5 devuelve una unidad, si es inferior un cero

en la ventana de inmediato:
?Int(100.5 + .5)
101
?int(100.49 +.5)
100
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar