Redondeo en consultas

Quiero redondear el resultado de una expresión que tengo en una consulta y no encuentro la función adecuada. No solo quiero que no apareccan los decimales, sino que redondee de verdad para luego utilizar ese dato (en otras expresiones, informes, etc)

1 respuesta

Respuesta
1
Hasta la versión 2000 de Access, el programa no incorpora una función de redondeo que te permita hacer lo que pretendes (redondear cantidades).
Así que tienes dos opciones, o actualizarte a esta versión y utilizar la función Round() o por el contrario crear tu mismo una función que realice el redondeo.
El método que yo utilizaba para redondear, antes de que Access lo pudiera hacer por si mismo, era capturar la parte decimal de la cantidad y dependiendo de los decimales que quisiera tomar elegía el último numero de la parte decimal. Si este era menor a cinco lo igualaba a cero y si era mayor a cinco aumentaba en una unidad el número anterior.
Por ejemplo si tomamos la cantidad 100,54 y hacemos la función Redondeo(Cantidad, Decimales) -> que será la función a crear, tomamos la parte decimal (54), como el segundo decimal es 4 la cantidad resultante será 100,5 si hubiéramos tomado dos decimales la cantidad a devolver seria 100,54.
Mi consejo es que reconsideres la posibilidad de actualizarte a Access 2000 o mejor a Access xp.
Ante todo gracias por la contestación anterior. La función Round() no la conocía a pesar de tener access 2000, no sale ni en el generador de expresiones como función incorporada ni en la ayuda.
A pesar de que la he proabado y funciona, sigo teniendo un problema: Lo que yo quería realmente es que me redondeara de 3 decimales a 2 decimales (por el tema de los euros), y lo que me hace esta función es redondear todos los decimales.
¿se puede redondear solo hasta el segundo decimal?
Saludos
David.
A la función Round se le pueden enviar dos parámetros, el primero es la cantidad, y el segundo son los decimales a los que queremos redondear. De esta forma si queremos redondear a dos decimales, como es tu caso, podemos enviar la función Round de la siguiente forma:
Round(Cantidad, Decimales) -> Round(125.000,2)
De forma, predeterminada, si no envías nada en la parte de los decimales, Round redondea a entero.
Yo la empleo, entre otras cosas, precisamente para el redondeo de importes con motivo del Euro.
Mil disculpas Sofocles, pensaba que la había finalizado ya, y he recibido un mensaje de todoexpertos comunicándome lo contrario. He debido despistarme pues estuve probando la función y no funcionaba pues en las consultas el separador es ";" y no "," . Por cierto, esta función no funciona perfectamente pues el redondeo del 5 lo hace a la baja y no al alza como dicen las normas del redondeo del euro.Hay que construir una función con código creando un módulo nuevo. No obstante agradezco tu ayuda de verdad.
David

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas