Crear Bucle para automatizar proceso Access

Tengo una base de datos donde registro algunos prestamos: diarios, semanales, quincenales y mensuales. Siempre que se crea uno abro un formulario de access donde ingreso las fechas de pago de los prestamos (el valor si lo arroja automático), pero me gustaría poder crear una formula o bucle que me permita que se cree de forma automática según corresponda al tipo de préstamo. La idea sería que según la fecha de una casilla que coloque, el cree en un formulario las fechas automáticamente, de acuerdo a la cantidad de cuotas en que se divida el préstamo (también las cuotas se escriben en la creación del préstamo).

He intentado realizarlo, pero no me ha sido posible y el inconveniente de da cuando los préstamos son diarios y en ocasiones son a 60 días o mas, lo que me obliga a tener que ingresar uno por uno.

1 Respuesta

Respuesta

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas