Hacer con Access07 Cálculo Fechas de la máxima y poner el mes siguiente

Tengo una tabla de Access07 que tengo diferentes campos, y en 10 campos de ellos son fechas de los pagos de clientes (nombre de los campos: 1ER PAGO, 2O PAGO, 3ER PAGO...) y quiero que salga un siguiente campo de fórmula que coja la mayor fecha de esos campos y que le sume 31 para que dé el siguiente pago que le toca (y así después crear un informe donde ordenaré a los clientes por la fecha que le toca el pago).

El ejemplo en Excel es sencillo pero no sé cómo hacerlo en Access (que espero que no haga falta un VB):

En ese ejemplo, que como ven puede ser que haya clientes que no tengan tantos pagos como otros y por eso hay columnas en blanco, el último pago que hizo fue el 04/03/17 entonces tiene que haber en Access un campo que haga la fórmula de Max B02:J02, y el otro campo sería el de Siguiente Pago y tendría que sumarle 31 al resultado del campo Máximo para que dé el 04/04/17.

Después querría hacer un informe que me saliera por orden descendiente el siguiente pago de los clientes y así controlar día a día cúal le toca pagar (ya que supongo que una escala de colores como hace Excel, en el informe de Access no tengo ni idea si sale, simplemente con el informe ordenado ya tendría suficiente).

Respuesta
2

Te digo lo que yo haría por si te sirve de algo. Crearía una tabla, que llamaremos Clientes, con IdCliente(autonumérico y clave), Nombre, etc. Luego haría una tabla Pagos, con Idcliente(numérico, no clave), NumPago y FechaPago. Relacionaría ambas tablas y con ellas haría un formulario con Subformulario.

Si quieres en el formulario puedes poner un cuadro de texto Proximopago( no es necesario, pero si quieres...), con origen de control en un campo de la tabla Clientes o sin origen, a tu gusto.

En el evento Después de actualizar del cuadro de texto FechaPago, puedes poner

me.parent!proximopago=fechapago + 31

Así, cuando escribas una fecha en el cuadro de texto Fechapago del subformulario, en el cuadro de texto te aparece la fecha del próximo pago.

Si el cuadro de texto Proximopago no tuviera origen de control, y quisieras que cada vez que abras el formulario te muestre esa fecha, basta con poner en el evento Al activar registro del formulario

proximopago=(dmax("fechapago","pagos","idcliente=" & me.idcliente & "")) + 31

Y con esas tabla puedes hacer los informes que quieras, pagos por cliente, pagos por fecha, pagos entre fechas, etc.

Muchísimas gracias por tu respuesta pero ya me lié con lo que me dijiste :)
Lo que tengo es más sencillo y no puedo crear otra tabla porque tengo esa tabla de Clientes que hay ya otros formularios, informes y demás relacionados con ella y me es complicado "empezar de cero". 

Además, necesito tener esas columnas con todas las fechas de pago relacionadas (1er pago, 2o pago...) ya que tengo informes que van relacionados con los pagos que me hacen los clientes (por lo que no solo me es necesario el último pago sino todos). El tema es que necesito un informe extra a lo que tengo que me indique todos los clientes el próximo pago que tienen que hacer y por eso necesito algo como lo que mandé de Excel. 

Es decir, la tabla con los datos de clientes, con los pagos, con una columna de último pago (que tiene que ser una fórmula de una consulta, si puede ser, que haga un Máx de todas las fechas de los pagos) y una con próximo pago (que al resultado de la columna de último pago le sume +31).

El tema es que lo he intentado hacer desde esa nueva consulta con la tabla así como digo y la columna de próximo pago me hace bien la suma del +31 pero la columna de último pago no me coge bien el máximo de fecha de las columnas de pagos y me salta error.

Gracias por vuestra atención y espero una respuesta pliss!

Tal como lo quieres lo tienes crudo ( al menos eso creo) porque en principio tendrías que comparar 10 o 11 campos, que no es lo mismo que comparar 10 o 11 valores.

Si lo haces con instrucciones If puedes estar días escribiendo código.

Como te decía, poniendo la tabla con Idcliente, NPago y FechaPago como en la imagen

Puedes hacer el informe  igual

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas