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].
Lástima sienten los usuarios por usted no sea arrogante y prepárese más. Si quiere la dicto un cursito avanzado de VBA, Gracias a mis respuestas en este foro tengo muchos alumnos, porque mis respuestas son concretas y con ilustraciones (lo que usted no sabe manejar). Y si fuera moderador lo hubiera bloqueado hace rato. - Eduardo Pérez Fernández
Enrique Feijóo UD es no solo un maleducado, sino también un NULO ayudante de quienes queremos comenzar con algo. Era para mi trabajo y si lo sabia no lo preguntaba, pensé que en un foro la gente ayuda, pero UD no, sus respuestas son inaceptables de maleducadas y de tono altanero. Gracias por su NO tiempo, por suerte alguien con Ganas de que los demás podamos salir adelante me ayudo. - Guillermo Couceiro
Apreciado Guillermo, puede leer mis mensajes para después interpretarlos como le plazca, esta Ud en su pleno derecho (otra cosa es que entienda el contenido), pero no tiene importancia, pues este foro tiene un traductor que copia ideas ajenas y sin entenderlas las replica (en privado cuando tienen autoría), entiendo que Ud. por apremio busque soluciones copy&paste. - Enrique Feijóo
Eduardo: hay cosas que no entiendo, tanto alabar a PostgreSQL como si lo dominase y en el subforo que hay en esta misma Web solo aparece de rebote (mucho no debe de saber o le corrieron cuando lo intento), tampoco tiene muchos seguidores de sus cuatro videos (se deberá a eso lo de hacer publicidad en foros). ................Un comentario sobre PostgreSQL: es un almacén de datos como otro cualquiera de los que Access soporta, los expertos dicen que da un buen rendimiento cuando el conjunto de datos es mediano o grande, pero de pésimo rendimiento para pequeñas aplicaciones, algo que no le quita otras virtudes (como las tiene cualquier otra de su nicho de mercado). - Enrique Feijóo
Eduardo (2): No he visto que programe 'para' PostgreSQL (si lo hiciese tendría activada la 'compatibilidad con SQL' y eso se nota) por lo que trata los datos con tablas vinculadas (esto es: emulando a las originales de Access) y lo dejo aquí que no es mi pretensión avergonzarle más...................Lo curioso es que Access es una base de datos con treinta años de vida y que en principio se diseñó para aplicaciones pequeñas o medianas por lo que PostgreSQL nunca será la mejor de las opciones. - Enrique Feijóo
Enrique, defectivamente usted no sabe Access avanzado y menos PostgreSQL. su comentario "No he visto que programe 'para' PostgreSQL". No necesito demostrárselo a nadie, pero basta con el aporte que hago en el video, y seguro que usted ni siquiera sabe descargar e instalar el material del video, sencillamente su ineptitud no se lo permite. Ahora, habla de que los expertos dicen, no hable por otros, me gustaría conocer el link de esos expertos que comentan sobre el rendimiento y que afirme que es pésimo en rendimiento para pequeñas aplicaciones, que absurdo, si es bueno para grandes volúmenes de datos, como no lo va ser para pequeños. El ejemplo del video no utiliza tablas vinculadas. - Eduardo Pérez Fernández
Por otra parte, siempre he aclarado para aplicaciones en Access cliente servidor es mejor como backend PostgreSQL, por seguridad, capacidad y compatibilidad, Le ofrezco un curso gratis sobre PostgreSQL, de esta forma puede hacer las comparaciones con Access e integración con el mismo. ¿Puede usted hacer una aplicación 100% en Access que funcione en la nube? Si la tiene cuánto vale?. - Eduardo Pérez Fernández