Problema con tabla de cuotas

Tengo una tabla1con los campos

  • PRÉSTAMO
  • DNI
  • CLIENTE
  • MONTO
  • PLAZO
  • TASA
  • MONTO REEMBOLSABLE
  • CUOTA
  • ESTADO
  • FECHA

No puedo lograr que en el formulario tabla1 en un botón llamado Generar, al poner la cantidad de cuotas ( ejemplo 10), me cree los 10 registros ( en la tabla1 obvio) con las cuotas del 1 al 10 y el campo FECHA me sume de la fecha que le ingreso + 30 días ( no importa si hay feriados o meses de 31) trasponiendo también los demás valores

Vi varios códigos, intente reformarlos, pero no logro, estoy más perdido que niño en playa lleno de gente.

Muchas gracias quien me pudea ayudar como hacerlo con algún código.

2 Respuestas

Respuesta
2

Guillermo lástima que hayan personas ofensivas, usted en ningún momento está solicitando se le haga una aplicación, afortunadamente no cae en manos de inexpertos. Es lógico se pide ayuda porque desconoce un tema, pero quien le ha respondido y lo remite a un hilo donde también respondí y el usuario no prestó importancia a mi respuesta, toda vez, que mi opción al menos hace el ajuste en la última cuota. Resumiendo le he preparado este ejemplo. Consta de 3 tablas y 2 formularios.

Observe el ajuste en la última cuota.

RELACIONES

CÓDIGO DEL BOTÓN GENERAR PLAN

Private Sub btnPlan_Click()
 On Error GoTo hay_error
  Dim dni As Long
  Dim vranual As Long
  Dim ncuotas As Byte
  Dim cuotames As Long
  Dim x As Integer
  Dim strAux As String
  Dim intresto As Integer
  Dim lnIdprestamo As Long
  Dim fecha_inicio As Date
  'Vadimaos campos
   If Not IsDate(Me.fechaprestamo) Then
      MsgBox "Verifique la fecha", vbCritical, "Plan"
      Me.fechaprestamo.SetFocus
      Exit Sub
   End If
   If IsNull(Me.cboDNI) Then
      MsgBox "Falta el DNI", vbCritical, "Plan"
      Me.cboDNI.SetFocus
      Exit Sub
   End If
   If IsNull(Me.monto) Or Me.monto = 0 Then
     MsgBox "Falta el monto", vbCritical, "Plan"
     Me.monto.SetFocus
     Exit Sub
   End If
   If IsNull(Me.vrcuota) Or Me.vrcuota = 0 Then
     MsgBox "Falta el valor de la cuota", vbCritical, "Plan"
     Me.vrcuota.SetFocus
     Exit Sub
   End If
    If IsNull(Me.plazo) Or Me.plazo = 0 Then
     MsgBox "Falta el plazo en meses", vbCritical, "Plan"
     Me.plazo.SetFocus
     Exit Sub
   End If
   If IsNull(Me.tasa) Or Me.tasa = 0 Then
     MsgBox "Falta el valor de la tasa", vbCritical, "Plan"
     Me.tasa.SetFocus
     Exit Sub
   End If
   If IsNull(Me.opcAjuste) Then
     MsgBox "Debe marcar si hay ajuste en la última cuota", vbInformation, "Plan"
     Me.opcAjuste.SetFocus
     Exit Sub
   End If
  lnIdprestamo = Me.idprestamo
  dni = Me.cboDNI
  vranual = Me.monto
  ncuotas = Me.plazo 'Meses
  cuotames = Me.vrcuota
  intresto = vranual Mod ncuotas
  fecha_inicio = Me.fechaprestamo + 31
    'Validamos el monto con el número de cuotas
   If ncuotas * cuotames < vranual And Me.opcAjuste = 1 Then
     MsgBox "Debe marcar el ajuste para la última cuota", vbInformation, "Plan"
     Me.opcAjuste.SetFocus
     Exit Sub
   End If
   If ncuotas * cuotames > vranual Then
     MsgBox "El número de cuotas es superior al monto", vbInformation, "Plan"
     Me.vrcuota.SetFocus
     Exit Sub
   End If
  DoCmd.RunCommand acCmdSaveRecord
  For x = 1 To ncuotas
   'Ajuste para la última cuota
   If x = ncuotas And intresto > 0 And Me.opcAjuste = 2 Then
     cuotames = vranual - (ncuotas - 1) * cuotames
   End If
    strAux = "INSERT INTO tblPlanCuotas(idprestamo,nro_cuota,vrcuota,fecha)" & vbCrLf
    strAux = strAux & " VALUES(" & lnIdprestamo & "," & x & "," & cuotames & "," & "#" & Format(DateAdd("m", x - 1, fecha_inicio), "mm/dd/yyyy") & "#" & ")"
    CurrentDb.Execute strAux
  Next x
hay_error_exit:
hay_error:
   MsgBox "Ocurrió el error " & Err.Number & vbCrLf & Err.Description, vbCritical, "Error..."
   Resume hay_error_exit
End Sub

CÓDIGO DEL BOTÓN AGREGAR

Private Sub btnAgregar_Click()
  DoCmd. GoToRecord,, acNewRec
  Me. Fechaprestamo. SetFocus
End Sub

He tratado de preparado lo básico para registrar facturas y préstamos, no obstante. hay muchísimo por hacer, le recomiendo dividir en varias tablas la aplicación. Si quiere el ejemplo lo puede solicitar a [email protected]

Observo que el campo "Plazo" me quedó con formato Moneda, cámbielo por "Númer General".

Disculpe subí la imagen del plan que no era, en este el ajuste de la última cuota está mal.

Mil disculpas

¡Gracias! 

Enrique ahí le dieron su merecido, a ver si aprende a valorar y respetar las respuestas de otros en este foro. Lo que nunca he recibido desde el año 2009 que estoy en este foro.

Respuesta
-1

Publica el código que has reformado y localizamos los problemas (la solución será un premio a tu esfuerzo y no una copia sin futuro)

¡Gracias! , como veras no vengo bien guiado a lo que nesecito realmente como comente

Private Sub Comando21_Click()
'Declaramos las variables
Dim PRESTAMO As Integer
Dim i As Integer
Dim vFECHA As Variant
'Cogemos los valores del formulario
PRESTAMO = Nz(Me.PLAZO.Value, 0)
vFECHA = Nz(Me.FECHA.Value, 0)
'Si no se ha indicado el número de recibos avisamos
If PRESTAMO = 0 Then
MsgBox "No ha indicado el número de PRESTAMO", vbInformation, "AVISO"
Exit Sub
End If
'Si no se ha indicado la fecha avisamos
If vFECHA = 0 Then
MsgBox "No ha indicado ninguna fecha de vencimiento", vbInformation, "AVISO"
Exit Sub
End If
'Empezamos el proceso de rellenado
For i = 1 To PRESTAMO
'Seleccionamos el registro actual
DoCmd.RunCommand acCmdSelectRecord
'Copiamos el registro actual
DoCmd.RunCommand acCmdCopy
'Nos vamos a un nuevo registro
DoCmd.RunCommand acCmdRecordsGoToNew
'Volvemos a seleccionar el nuevo registro
DoCmd.RunCommand acCmdSelectRecord
'Pegamos los valores en los campos
DoCmd.RunCommand acCmdPaste
'Modificamos el número de recibo
With Me
'Sumamos un número al recibo
PRESTAMO = i + 1
'Lo escribimos
.PRESTAMO.Value = PRESTAMO
'Añadimos treinta días a la fecha
vFECHA = FECHA + 30
'Lo escribimos
.FECHA.Value = vFECHA
End With
'Nos movemos al siguiente recibo
Next i
End Sub

por favor ayuda

No estas enfocando la solución de forma correcta comenzando por las variables.
Si los datos están disponibles en el formulario (en sus respectivos cuadros de texto) harán la misma función que las variables sin consumir: recursos + tiempo + complicando el código (además son los valores reales, no una copia).
Sobre los plazos ... como no me parece que tengas un enfoque correcto, asume que es como una venta o una factura, formalmente se divide en dos partes, en una los datos comunes (factura, fecha, cliente, dirección etc.).
En una segunda tabla se generan los detalles de la Venta/Factura (los artículos y en los prestamos: los plazos) estos registros se asocian a la factura por un elemento común que en el caso de las ventas seria el numero de venta/factura y en el de lo créditos el numero de crédito (o un ID que identifique como elemento único a esa venta/factura/crédito).

¿Tienes una tabla para introducir los detalles de los créditos? (Solo hace falta una para todos los créditos).

Una vez que en el actual formulario estén los datos indispensables, se procesan y se generan en la tabla detalles los diferentes plazos en los que debería figurar el ID (la relación con el crédito) el numero de plazo, la fecha de vencimiento, el importe y todos aquellos que sean necesarios y no estén en el formulario que define el crédito.

Respecto a los importes y fechas ...
El/los importes: pueden calcularse dividiendo el monto final por el numero de plazos, hay quien (para evitar decimales o asumir un valor consensuado) en el plazo inicial o final compensan la diferencia entre la suma de los plazos y el monto total del crédito (a gusto del consumidor).
Las fechas: estas se pueden calcular para incrementos de treinta días naturales o para que se ajusten a una fecha fija (el treinta de cada mes o el diez o ...).

Analiza lo expuesto, pregunta las dudas y si te convence y estas dispuesto a crear tú aplicación, solo se necesita definir las reglas (como calcular los importes, como genera las fechas ...) y continuamos.
Hay un hilo similar enlace, probablemente ese usuario puede colaborar con sus ideas (su aplicación parece mas avanzada que la tuya) y cualquier lector puede aportar detalles si a ti te parece correcto.
Mi colaboración básica ira en la línea de traducir las ideas aportadas al entorno Access, no la de crear una aplicación bajo demanda (no me parece que este sea el foro adecua para ello).

Inapreciable Eduardo, evite comentarios de esta índole:

Guillermo lástima que hayan personas ofensivas, usted en ningún momento está solicitando se le haga una aplicación, afortunadamente no cae en manos de inexpertos. ...

Simplemente puntualizo los limites que me auto-impongo, la aplicación es la del usuario.
Y si el desea adelantar pasos:
Hay muchos repositorios Web que ofrecen aplicaciones abiertas de todo tipo que puede utilizar como referencia o tomar ideas para crear la suya o en ultima instancia utilizar con libertad.

Ud. Interviene como si fuera moderador de la Web 'el rincón del vago', imponiendo su criterio o pensamiento único (una relación de rey tuerto/súbditos, felicito a sus seguidores incondicionales).
Es imposible que desde sus limitados conocimientos pueda aportar creatividad y créame: todos podemos aprender algo (excepto Ud. que al parecer nació sin capacidad para ello).
En fin, no se puede hacer nada con Ud, (solo sentir lastima).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas