Actualizar tabla sin cerrar/abrir aplicación access
Solicito por favor su amable ayuda en lo siguiente: En concurridas ocasiones los clientes solicitan se les extiendan "Solvencias" y la política es que éstas tengan validez 24 horas y por lo tanto estos clientes en específico deben permanecer en un estado "Inactivo".
Para el efecto he creado una tabla 14BitacoraSolvencia donde registro el CodSolv (código de solvencia), Carnet (del cliente), Fecha (de la solvencia), ojo este último campo es el que me sirve para calcular la diferencia entre fecha/hora. En la tabla 06CLIENTES Carnet (del cliente), Nombres (etc), Activado (sí/No), éste último me indica el estado del cliente.
DoCmd.RunSQL "UPDATE 06CLIENTES INNER JOIN 14BitacoraSolvencias ON 06CLIENTES.Carnet = 14BitacoraSolvencias.Carnet SET 06CLIENTES.Activado = True WHERE DateDiff("h", [FECHA], Now()) >= 24"
El código arriba descrito lo he colocado en el formulario 01IntroBibcunizab, el cual se abre inmediatamente de pulsar el icono de la aplicación, su acción es: Abre un clip de vídeo de 9 segundos aprox, acto segido se abre otro formulario de Login.
Option Compare Database Option Explicit Private Sub Form_Load() Me.TimerInterval = 9500 DoCmd.RunSQL "UPDATE 06CLIENTES INNER JOIN 14BitacoraSolvencias ON 06CLIENTES.Carnet = 14BitacoraSolvencias.Carnet SET 06CLIENTES.Activado = True WHERE DateDiff("h", [FECHA], Now()) >= 24" End Sub Private Sub Form_Timer() DoCmd. Close acForm, Me. Name DoCmd. OpenForm "02IDENTIFICACIÓN USUARIOS", acNormal End Sub
El problema es, que para empezar, el primer código descrito se me ha marcado en rojo, (algo no está bien).
Luego quisiera que hiciera su función, sabiendo de antemano, por un lado, que la aplicación no se va a cerrar en ningún momento, excepto de cuando en cuando por mantenimiento al igual que la PC; y por otro, que la tarea sea automática, es decir que el usuario no tiene que accionar ningún botón ni nada por el estilo, dado a que son muchísimos clientes y tantos que también solicitan "Solvencia" que el usuario se volvería loco para estar actualizando esto manualmente.
Los pasos ya programados son: Al cliente se le revisa su "Estado", si está activo entonces se imprime la Solvencia (contrario no), al imprimir se quita el check de Activado. De aquí en adelante es el asunto "volver al estado Activado" luego de pasadas 24 horas.
Espero no haber sido tan enredado, si desean alguna explicación puntual, por favor me dicen. Desde ya muy agradecido por su finísima atención y amabilidad al ayudarme.