Perdona una vez más mi tozudez, pero no consigo que me funcione el cálculo.
Mi módulo se llama: MdVtoconDiaPago con el siguiente código que tú me enviaste ya en una pregunta anterior:
'Esta funcion nos permite calcular la fecha de vencimiento con varios dias de pago o sin ellos.
'http://www.mvp-access.com/foro/vbacalculo-de-vencimiento-dia-pago_topic77307.html
'Adaptada por Jacinto Trillo Jareño en Fecha 28/09/2017 para Paco Sanchez
'Parametros:
'DFecha: Fecha de inicio del calculo; DPlazo: Numero de dias aplazados
'BAprox: Boolean, si es True indica que en los casos que el dia de pago no exista para ese mes, se obtendrá el ultimo dia del mes.
'DDias: Matriz con los dias de pago.
'Ejemplos:
'VtoMasDiaPago #12/12/2004#, 75, True = 25 / 2 / 5
'VtoMasDiaPago #12/12/2004#, 75, True, 10, 30 = 28 / 2 / 5
'VtoMasDiaPago #12/12/2004#, 75, False, 10, 30 = 10 / 3 / 5
'VtoMasDiaPago #12/12/2004#, 75, True, 20, 10, 5 = 5 / 3 / 5
Public Function VtoMasDiaPago(DFecha As Date, DPlazo As Integer, BAprox As Boolean, ParamArray DDias()) As Date
Dim VDia As Integer, NDia As Integer, SDias As Integer
DFecha = DFecha + DPlazo
Do
For NDia = 0 To UBound(DDias())
SDias = SDias + DDias(NDia)
VDia = DDias(NDia) - Day(DateSerial(Year(DFecha), Month(DFecha), DDias(NDia)))
If (Day(DFecha) = VDia And BAprox) Or Day(DFecha) = DDias(NDia) Then Exit Do
Next
If SDias = 0 Then Exit Do
DFecha = DFecha + 1
Loop
VtoMasDiaPago = DFecha
'MsgBox "El día de vencimiento en estas condiciones es el: " & VtoMasDiaPago
End Function
y que me funciona perfectamente en un formulario en el que yo utilizo los campos [fechafactura], [formapago], [díaVto] y el cálculo me lo da en [fechaVto].
Cuando utilizo la consulta actual que necesito con lo que me has enviado DiaVtoFra: (VtoMadDiaPago ([fechaFra];30-1;5;10;20) Siendo 5;10;20 los días de pago que yo utilizo.
El cálcuo es incorrecto:
con un cliente que tengo [formapago]=0 y [DiaVto]=5 el resultado es 10/01/2019. Cuando debería ser 05/01/2019
con otro cliente que tengo [formapago]=0 y [DiaVto]=0 el resultado es 10/01/2019. Cuando debería ser 06/12/2018.
Teniendo en cuenta en ambos casos que [fechaFactura]:Fecha() que se corresponde con 06/12/2018
Espero haberme explicado con claridad y Perdona mi insistencia, pero creo que es lo que necesito utilizar.
Gracias Paco