Calculo de importe días por tasas diferentes entre años.

Tengo una BD de access para arrojar facturas de vehículos que están en depósito. Estas facturas tienen un concepto llamado TASAS que puede tener un valor distinto dependiendo del año, es decir:

IMPORTE = TASAS 2016 * días depósito 2016 + TASAS 2017 * días depósito 2017

Creo que la línea de arriba es más explicativa que todas mis palabras. Por favor, si podéis ayudarme en llevar a cabo este calculo en una consulta, mejor. No estoy muy puesto en código VBA., de todas formas si no es posible en una consulta intentaré esforzarme en entenderos.

2 respuestas

Respuesta
2

Si tienes una tabla con las tasas correspondientes a cada año, puedes usar la función DLookUp() para recuperar ese valor. Por ejemplo, si tienes la tabla TTasas con los campos Tasa y Año, sería;

IMPORTE = DLookUp("Tasa","TTasas","Año=2016") * días depósito 2016 +DLookUp("Tasa","TTasas","Año=2017") * días depósito 2017

Un saludo.


Hola Sveinjorn. Verás he creado una tabla con los campos necesarios TTasas (Id, Tasas, Dias, Anio), creo un formulario conectado a la tabla y le añado un TextBox independiente llamado Importe. En el evento del formulario Current, le pongo la linea de código tal cual:

Private Sub Form_Current()
Importe = DLookup("Tasa", "TTasas", "Anio=2016") * Dias + DLookup("Tasa", "TTasas", "Anio=2017") * Dias
End Sub 

Pues sucede que me arroja valores erróneos, ejemplo: para Anio 2016, Tasa 3, Dias 2, me da 16, y debería dar 3*2=6.

¿Qué hago mal?

A ver:

Importe = 3*2 + X*2=16

Y suponiendo que tienes una tasa de 5 para 2017 (X=5), la fórmula funciona perfectamente...

Fíjate que le estás diciendo que importe es la tasa de 2016 por los días + la tasa de 2017 por los días, que es lo que pedías en tu primer mensaje.

Es verdad, estaba obcecado con el resultado que tenia en mente y no me dejaba verlo. Gracias, ya solo queda hacer una suma de días por años entre fechas y aplicar el DlookUp.

Si entiendes cómo funciona DLookUp(), le sacarás mucho partido. Y lo mismo a las otras funciones agregadas de dominio... ;-)

Respuesta
1

Otra forma

Suponiendo que sigas queriendo una consulta y mostrado paso a paso. Supongamos que tienes una tabla con IdVehiculo, matricula, Fechadeposito, En otra tabla Tasas con Año y Tasa.

Con la tabla Vehículos construye una consulta como en la imagen

La continuación en la imagen 2

Pero coincido que es mucho mejor hacerlo en código

¡Gracias! Icue, no habia visto antes tu propuesta porque estoy liado intentando aplicar el DLooUp de El Rojo. Pero me parece interesante para alguien como yo que no manejo casi nada código. Además me estoy tropezando con problemas porque las tasas cambian ademas de por año, por tipo de vehículo. Bueno ya os cuento si lo consigo. Gracias a ambos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas