Tengo tabla con un registro por c/pago de cuota mensual ¿Cómo obtengo lista de morosos?

<p class="scayt-auto" data-scayt_autocorrection="pago" data-scayt_autocorrected="pagò">cree una base de datos en Access para llevar el pago de cuotas mensuales, tengo una tabla de afiliados y una tabla de pagos donde voy asentando los pagos de cada mes, es decir que tengo un registro de los que han pagado y así puedo saber quien pago determinado mes, pero no se como hacer para obtener un listado de morosos para cualquier mes.

1 respuesta

Respuesta
2

Lo que tendrás que hacer es ver los afiliados que NO estén en la tabla Pagos en ese mes.

Supongamos que las tablas son:

Afiliados: NumAfiliado, Nombre, Dirección...

Pagos: NumAfiliado, Año, Mes, Cuota

En una consulta bajas las 2 tablas y las vinculas por el NumAfiliado poniendo TODOS los registros de afiliados y SOLO los que coincidan en Pagos ---> esto lo haces con botón derecho sobre la linea que une los 2 campos NumAfiliado

Después bajas a las columnas los campos: NumAfiliado de la tabla Afiliados y el Año, Mes y NumAfiliado de la tabla Pagos.

En criterios pones:

Para el año: [Año]

Para el mes: [Mes]

Para el NumAfiliado de la tabla Pagos: Es Nulo

Con los [] convertimos el año y el mes en parámetros, por lo que te los pedirá cuando abras la consulta.

Sacará TODOS los registros de la tabla Afiliados en los que el NumAfiliado de la tabla Pagos sea nulo en ese mes y año.

Hola angelessebas muchas gracias por tu tiempo y deseos de ayudar, puse en practica lo aconsejado, pero evidentemente estoy cometiendo un error ya que al usar ejecutar, no pide parámetros (mes/año) y luego la consulta sale en blanco, te envío una imagen que compuse con las capturas de las pantallas, para veas que hice mal a ver si me podes reorientar. Una vez mas, gracias.

Lo siento, tienes toda la razón.

Al llamar a los parámetros igual que los campos (Año y Mes) no los toma como parámetros, sino que lo que estamos haciendo es comparar el campo con si mismo.

Para los parámetros pones alguna leyenda distinta del nombre del campo, por ejemplo:

[Introducir el mes]

[Introducir el año]

Gracias una vez mas por tu pronta respuesta, se solucionó para que pida parámetros, pero luego la consulta se abre sin mostrar ningún registro, es decir no muestra ni los que pagaron la cuota ni los morosos para el año y mes ingresados.

Desde luego... cuando me "atoro"... me "atoro"

Lo que pasa es que no se puede hacer en una sola consulta, hay que utilizar 2.

Si en una sola consulta pedimos el año y el mes que están en la tabla Pagos y además decimos que el NumAfiliado no esté... no existe ninguno.

Lo que tenemos que hacer es crear una consulta sobre la tabla Pagos para seleccionar los registros de ese Año/Mes y sobre esta consulta vincular el NumAfiliado y ver los que son nulos, es decir los que no están (tienes que tener en cuenta que una consulta de selección actúa exactamente igual que una tabla)

Creamos la 1ª consulta, que llamaremos ConsultaPagos:

Campos: NumAfiliado Mes Año

Criterios [Introducir el mes] [Introducir el Año]

Con esta consulta obtendremos TODOS los afiliados que han pagado el Mes/Año

Creamos la 2ª consulta (la llamaré ConsultaAfiliados):

Bajas la tabla Afiliados y la consulta ConsultaPagos

Vinculas las 2 por el NumAfiliado con la condición TODOS los registros de la tabla Afiliados y solo los que coinciden de la ConsultaPagos (La consulta ConsultaPagos está actuando como si fuese una tabla)

Bajas a las columnas los campos NumAfiliado de la tabla Afiliados y NumAfiliado de la ConsultaPagos, en el criterio de este último es en el que tienes que poner Es Nulo

Cuando ejecutes la consulta ConsultaAfiliados, lo 1º que hace access es ejecutar la consulta ConsultaPagos y te pedirá los parámetros, después ejecutará la consulta ConsultaAfiliados y te dará el resultado.

*** Siento no haberlo visto antes

Ahora anduvo perfecto, es justo lo que necesitaba hacer, te estoy muy agradecido Ángeles, realmente gratifica encontrar gente que preste su colaboración en forma desinteresada, creo que si hubiera más gente así y sobre todos en los ámbito dirigencial, el mundo sería mucho mejor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas