Sumar decimales como entero Access 2016

Tengo un formulario con un campo definido como cantidad y otro como bultos que suma las cantidades del campo cantidad pero en este campo no me interesan los decimales sino los enteros ya que lo que necesito saber es la cantidad de bultos en este caso tengo definido la suma de bultos por VBA y en las propiedades de bultos en formato fijo y decimales 0 y esto funciona hasta que un registro que es decimal que lo suma como decimal y no como entero entonces los bultos ya no son los mismos porque cuando son enteros los suma perfecto.

Entonces lo que quiero es que los decimales cuenten como enteros por ejemplo:

Campo (cantidad)=0.3+1=2(bultos) esto seria lo que quiero

Campo (cantidad)=0.3+1=1(bultos) esto es lo que no quiero(así es como lo tengo ahora)

A ver si alguien me puede ayudar

2 respuestas

Respuesta
1

La fórmula que necesitas podría ser ésta:

Me.Bultos= IIf(Me.Cantidad/ Int(Me.Cantidad) = 1, Me.Cantidad, Int(Me.Cantidad) + 1)

Es decir, que si la división entre el campo Cantidad y su parte entera es 1 (lo que significa que el numero no tiene decimales), te ponga ese número, y en caso contrario (tiene decimales), te ponga la parte entera más una unidad.

Donde pongo el campo Cantidad podría ser la suma de ese campo, ya depende de cómo lo tengas montado, porque no me quedó claro del todo...

Un saludo.


te envio estos pantallazos porque lo que me enviaste no consigo que funcione

Es lógico que no te funcione porque en ningún momento comentaste que lo que hay que sumar está en un subformulario y el resultado tiene que ir en el formulario, y por eso, tanto la solución de Icue como la mía son para hacer esa suma que quieres en el propio formulario donde tienes los bultos.

Lo que tienes que hacer es adaptar la sintaxis para sumar los campos del subformulario. Te dejo un ejemplo, sin necesidad de poner un campo nuevo en la tabla, como te propone Icue: http://filebig.net/files/9ySuLaaanF

Todos los códigos están en el subformulario.

Un saludo.


Respuesta

Si tengo un formulario

Y en el cuadro de texto 5 en el evento Al recibir el enfoque le digo que me haga la suma, me saldrá lo que ves pero si le digo

Private Sub Texto5_GotFocus()
Texto5 = DSum("bultos", "clientes")
If Texto5 > Int([Texto5]) Then
Texto5 = Int([Texto5]) + 1
End If
End Sub

Es decir, redondea hacia arriba

te envio estos pantallazos porque lo que me enviaste no consigo que funcione

Vamos a ver si consigo explicarme. He intentado reproducir(más menos que más) tu formulario. En la tabla DetallePedido le he añadido un campo Red( de redondear) numérico y byte. Es el cuadro que puedes ver a la derecha del subformulario para que veas como redondea la cantidad

Cuadro de texto que puedes poner como oculto para que no se vea. Y en el evento Después de actualizar del cuadro de texto Cantidad del subformulario le pongo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas