Le dejo esta idea o ejemplo:
Tabla Prestamos
IDPrestamo
FechaInicio
TipoPrestamo (Diario, Semanal, Quincenal, Mensual)
NumCuotas
MontoTotal
Tabla Pagos
IDPago
IDPrestamo
NroCuota
FechaPago
MontoCuota
Adicione un botón en tu formulario frmPrestamos
(En el evento Al hacer clic)
Código para generar fechas de pago:
Private Sub btnGenerarPagos_Click()
Dim i As Integer
Dim fechaPago As Date
Dim tipoPrestamo As String
Dim numCuotas As Integer
Dim montoCuota As Currency
Dim idPrestamo As Long
' Obtener valores del formulario
idPrestamo = Me.IDPrestamo
fechaPago = Me.FechaInicio
tipoPrestamo = Me.TipoPrestamo
numCuotas = Me.NumCuotas
montoCuota = Me.MontoTotal / numCuotas
' Borrar pagos anteriores si existen
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE FROM Pagos WHERE IDPrestamo = " & idPrestamo
DoCmd.SetWarnings True
' Bucle para generar pagos
For i = 1 To numCuotas
' Insertar pago
DoCmd.RunSQL "INSERT INTO Pagos (IDPrestamo, NroCuota, FechaPago, MontoCuota) " & _
"VALUES (" & idPrestamo & ", " & i & ", #" & fechaPago & "#, " & montoCuota & ")"
' Calcular siguiente fecha según tipo de préstamo
Select Case tipoPrestamo
Case "Diario"
fechaPago = DateAdd("d", 1, fechaPago)
Case "Semanal"
fechaPago = DateAdd("ww", 1, fechaPago)
Case "Quincenal"
fechaPago = DateAdd("d", 15, fechaPago)
Case "Mensual"
fechaPago = DateAdd("m", 1, fechaPago)
Case Else
MsgBox "Tipo de préstamo no válido", vbExclamation
Exit Sub
End Select
Next i
MsgBox "Pagos generados correctamente.", vbInformation
End Sub
Qué hace este código:
-Toma los datos del préstamo activo en el formulario
- Borra pagos previos (por si acaso)
- Calcula el monto de cada cuota
- Recorre del 1 al número de cuotas, creando una línea de pago con la fecha y el monto
- Incrementa la fecha según si es Diario, Semanal, Quincenal o Mensual
- Muestra un mensaje al terminar
Ventajas:
Ya no tiene que ingresar fechas manualmente
Funciona con cualquier cantidad de cuotas (aunque sean 60 o más días)
Se adapta automáticamente al tipo de préstamo
Queda todo controlado desde un solo botón