Access Sumar 7,15 o 30 días a una fecha de pago

Estimados necesito de su ayuda.

Estoy confeccionando un sistema de cobanzas y créditos es access. Tengo en una subconsulta de pagos un campo de valores periodo(semanal, quincenal y mensual) una fecha de pago y una fecha de vencimiento, necesito a la fecha de pago que la introduzco manualmente que me arroje la fecha de vencimiento de manera automática según elija el periodo semanal, quincenal o mensual como seria la fórmula y donde debería introducirla.

1 respuesta

Respuesta
1

Si el cálculo lo quieres hacer en una consulta (o en un formulario basado en una consulta), y en tu campo "periodo" pones los valores (semanal, quincenal o mensual) así, en texto, en un nuevo campo de la consulta pones:

Fecha Vencimiento: IIF([periodo]="semanal";DateAdd("d";7;[fecha de pago]);IIF[periodo]="quincenal";DateAdd("d";15;[fecha de pago]);DateAdd("d";30;[fecha de pago])))

De esta forma el cálculo lo harás cada vez que ejecutes la consulta y no te hace falta tener el campo fecha de vencimiento en la tabla.

Si tu tabla tiene el campo fecha de vencimiento, en el formulario que uses para introducir los datos, en el evento "Después de actualizar" del campo fecha de pago o periodo (o incluso en los dos) le generas este código:

If IsNull(Me.[decha de pago]) Then Exit Sub

If IsNull(Me.periodo) Then Exit Sub

Select Case Me.Periodo

Case "semanal": Me.[fecha de vencimiento]=DateAdd("d";7;[fecha de pago])

Case "quincenal": Me.[fecha de vencimiento]=DateAdd("d";15;[fecha de pago])

Case "mensual": Me.[fecha de vencimiento]=DateAdd("d";30;[fecha de pago])

End Select

Ah! Tienes otra opción, usar los campos calculados en la tabla, si usas access 2010 o superior, como explica Neckkito Nck en este ejemplo: http://siliconproject.com.ar/neckkito/index.php/97-ejemplos-explicados/ejemplos-especiales/305-campos-calculados-en-tabla

¡Gracias! lo voy a intentar

Esta opción me parece correcta 

Fecha Vencimiento: IIF([Período]="Semanal";DateAdd("d",7,[fecha de pago]);IIF[Período]="Quincenal";DateAdd("d",15,[fecha de pago]);DateAdd("d",30,[fecha de pago]))

ahora cuando la traslado a la consulta de pagos al campo para visulizarla elijo la opción semanal o la que fuera y me sale esto: #¿Nombre?

Me podrías ayudar o enviarte el sistema para que lo veas. Muchas gracias.

Mándame la BD a este correo: [email protected]

Porque con la foto no veo dónde está el origen del problema.

Haz una copia de la BD y borra todo aquello que no intervenga en tu pregunta, es decir, deja las tablas, consultas y formularios necesarios para que pueda ver el problema.

Gracias  ... el correo da error

Mándala comprimida, que igual pesa mucho.

Y si no, súbela a dropbox, o similar y ponme aquí el enlace de descarga (yo suelo usar para esto www.filebig.net)

Tu primer error es que la fórmula la estás poniendo en el origen de control del formulario (en que te sale #nombre#) y yo te dije que tenías que ponerla en un campo nuevo de la consulta, y luego hacer el informe sobre la consulta.

Además, te dije que ese método era el adecuado si no querías almacenar en la tabla la fecha de vencimiento, y veo que sí la quieres almacenar.

El segundo error está en que en al fórmula pones mal el nombre de los campos: tu "subformulario pagos" está basado en la consulta "ConsultaPagos", que tiene los campos "período" y "periodo", siendo el primero es que tiene los valores de semanal... y no el segundo, y tú estás usando en la fórmula el segundo.

Te añado un campo nuevo en la consulta ConsultaPagos, llamado FechaVto, con la fórmula propuesta, para que veas cómo sería. En tu formulario has de añadir ese nuevo campo (Vista Diseño->agregar campos existentes)

Visto cómo tienes tu BD, yo te recomendaría la segunda opción, la de hacerlo directamente por código. Te lo dejo hecho en "subformulario pagos", en el evento después de actualizar del cuadro combinado.

Te dejo la BD "corregida": http://www.filebig.net/files/4pm2J7Aens 

¡Gracias! pero muchas gracias

1- Gracias era lo que buscaba, lo único que me da este error cada vez que abro el formulario clientes y que contienen el subformulario donde esta la función que me enviaste.  ERROR: La función ´[SiInm]`no está definida en la expresión.

Abre la consulta ConsultaPagos y cambia todos los SiInm del campo calculado FechaVto por IIF, a ver si por ahí van los tiros.

Si aún te da el error, borra esa columna, porque en el formulario no la usas.

A mi no me da ningún error al abrir los formularios...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas