Cálculos de semestres en una función de vencimientos de efectos

Tengo que aplicar el cálculo de vencimientos de efectos de forma semestral y con un numero determinado de pagos.

Estos son los datos que componen el proceso:

Fecha Inicial : FechaInicioPagos

Numero de Vencimientos: NumPagos

Los vencimientos han de ser SEMESTRALES y con un numero determinado de vencimientos en función de NumPagos

1 respuesta

Respuesta
1

Para empezar, te falta indicar un dato fundamental, el importe del efecto.

Suponiendo que ese dato esté en un campo llamado Importe, que los pagos sean lineales, y que los detalles de pagos los guardes en otra tabla llamada TCuotas, puedes hacer algo como esto, en el evento que creas más conveniente:

Dim i As Integer

For i=1 to Me.NumPagos

CurrentDb.Execute "INSERT INTO TCuotas (NumPago, FechaPago, Importe) VALUES(" & i ",#" & DateAdd("m",6*(i-1),Me.FechaInicioPagos) & "#," & Me.Importe/Me.NumPagos & ")"

Next i

Con ese código te ingresará en la tabla TCuotas el número de pago, la fecha y el importe, por ejemplo, para un efecto de 1000 €, con primer pago el 01/03/2016 y 4 cuotas lo siguiente:

NumPago------FechaPago-------Importe
1 --------------- 03/01/2016 ------------- 250
2 --------------- 03/07/2016 ------------- 250
3 --------------- 03/01/2017 ------------- 250
4 --------------- 03/07/2017 ------------- 250

Me inserta dos vencimientos iguales del primer plazo y me crea un vencimiento de más por esa razón, y no se porque hace eso.

Te adjunto la rutina que estoy utilizado:

For b = 1 To Me.Semestre
CurrentDb.Execute "INSERT INTO [APUNTESCOMPRASGASTOS] (IdComprasGastos,FechaFactura,FechaContable,Importe,NumFactura) VALUES ('" & Me.IdComprasGastos & "',#" & Format(DateAdd("m", 6 * (b - 1), Me.[FechaFactura]), "mm/dd/yyyy") & "#,#" & Format(DateAdd("m", 6 * (b - 1), Me.[FechaFactura]), "mm/dd/yyyy") & "#,'" & Me.Importe & "','" & Me.NumFactura & "')"
Next b

El código que te propuse lo probé y funciona correctamente.

En el que tu pones no veo nada que provoque ese registro duplicado. ¿Te lo añadirá en otra parte de tu código que no muestras?

Es el único proceso que realizo, dispongo de varios botones que cada uno de ellos crea una secuencia de vencimientos en función de las necesidades y con este me esa ocurriendo eso

He solucionado el problema quitando el 6 * (b - 1) y colocandolo en For b = 1 To Me.Semestre-1.

Muchas gracias por toda tu ayuda

El (i-1) lo puse porque entendí que el primer vencimiento tenía que coincidir con FechaInicioPagos, por eso el "-1", para que en la primera ejecución del bucle pusiera esa misma fecha.

Pero si lo has solucionado de otra forma, estupendo!

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas