1. Sí, es posible que el usuario ingrese un parámetro en una tabla de referencias cruzadas en Access. Para hacerlo, puedes crear un formulario y agregar un cuadro de texto en el que el usuario ingrese el valor que desea buscar en la tabla de referencias cruzadas. Luego, puedes vincular este cuadro de texto a una consulta que filtre los resultados de la tabla de referencias cruzadas según el valor ingresado por el usuario.
2. Para actualizar automáticamente el estado de los socios cuando están en mora, puedes crear un procedimiento VBA en un módulo de código de Access. Primero, puedes crear una consulta que calcule la diferencia entre la fecha actual y la fecha de pago más reciente para cada socio. Luego, puedes usar el resultado de esta consulta en un bucle que recorra todos los socios y actualice su estado a "mora" si la diferencia entre la fecha actual y la fecha de pago más reciente supera un cierto número de días.
Aquí te dejo un ejemplo de código que puedes usar como punto de partida:
Este código asume que tienes una tabla llamada "Socios" con un campo "SocioID" y un campo "Estado", y una tabla llamada "Cuotas" con un campo "SocioID" y un campo "FechaPago". También asume que la fecha de vencimiento de las cuotas es el día 1 de cada mes.
Para actualizar automáticamente el estado de los socios, puedes crear una macro que ejecute el siguiente código VBA:
Este código abre un recordset de la tabla "Socios" y otro recordset de la tabla "Cuotas". Luego, itera a través de cada socio y busca la última fecha de pago en la tabla "Cuotas". Si la fecha de pago es anterior al primer día del mes actual, actualiza el estado del socio a "mora", de lo contrario, lo actualiza a "ok".
Puedes ejecutar esta macro automáticamente usando un Temporizador de Eventos de Access, que te permitirá configurarla para que se ejecute en un intervalo determinado (por ejemplo, cada día a las 12:00 pm). Para hacer esto, sigue estos pasos:
1. Abre la vista de macros en Access.
2. Crea una nueva macro llamada "Actualizar Estado Socios".
3. Agrega una acción "Ejecutar código" a la macro y copia y pega el código VBA anterior en la ventana de código.
4. Guarda y cierra la macro.
5. En la vista de formularios, abre el formulario de Temporizador de Eventos (si no lo tienes, puedes crearlo en la vista de diseño de formularios).
6. Configura el Temporizador de Eventos para que se ejecute en el intervalo que deseas (por ejemplo, diariamente a las 12:00 pm).
7. Agrega una acción "EjecutarMacro" al evento "Temporizador" del formulario y selecciona la macro "Actualizar Estado Socios".
8. Guarda y cierra el formulario de Temporizador de Eventos.
Con estos pasos, la macro "Actualizar Estado Socios" se ejecutará automáticamente en el intervalo especificado por el Temporizador de Eventos, manteniendo actualizado el estado de los socios.