Redondeo con access 97

Quisiera saber cual es la función para redondear un numero a un decimal concreto. En access 2000 la función es round (numero ;numero de decimales), en access 97 no funciona
En concreto la necesito para redondear un campo moneda (euro), al segundo decimal.
Cuando creo un campo moneda el número que se muestra es con 2 decimales, pero al hacer click se muestran 2 decimales más osea 4, internamente se almacena con 4 decimales. Al hacer por ej. Una multiplicación no cuadra pues la operación que se realiza es con más de dos decimales aunque sólo veamos dos.
Respuesta
1
Lamento comunicarte que en Access97 no existe la función que buscas, por lo que solo tienes dos alternativas:
- Crearte tu la función.
- Migrar a Access 2000.
Yo personalmente, te recomiendo que migres, pero no a Access 2000, sino a la última versión disponible, Access XP.
Pero marketing aparte, si quieres montarte la función, debes utilizar los siguientes métodos:
- instr() para localizar la parte decimal (",").
- Len para el tamaño del campo cantidad.
- Left para separar la parte izquierda de la coma.
- Right para separar la parte derecha de la coma.
- CDbl para convertir a numero doble el string que tienes que tratar en la función.
La función puedes llamarla Redondeo, y puedes mandar la cantidad y los decimales a redondear, de manera que el nombre con las condiciones seria: Redondeo(Cantidad, Decimales).
Debes tratar el error, por lo que la función se estructuraría:
Function Redondeo (Cantidad, Decimales)
On error Goto Error_Redondeo
.......
......
Exit Function
Error_Redondeo:
Msgbox Error$,48,"TituloAplicación"
Exit Function
End Function
Y el contenido mas o menos deberá ser asi:
Dim Entera
Dim Decimal , Decimal2
Dim PosComa
PosComa = Instr(1,",",Cantidad)
Entera=Left(Cantidad,PosComa-1)
Decimal=Right(Cantidad,Len(Cantidad)-Poscoma)
If Decimales = 0 then
Redondeo = CDbl(Entera)
Else
Decimal=Left(Decimal,Decimales+1)
Decimal2=Right(Decimal,1)
If Decimal2>=5 then
Decimal=Decimal+10
Else
Decimal=Decimal
Endif
Decimal=left(Decimal,Decimales)
Redondeo=Cdbl(Entera & "," & Decimal)
End If
Prueba con esta información, mejorala, y obtén tu función.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas