Formulario que sirve como recordatorio Access

Deseo crear un formulario que sirva como recordatorio de registro pendientes, supongo que debo de basar este formulario sobre una consulta que me filtre mis registros en el estatus pendiente, por ejemplo el campo COTIZACIÓN = "Pendiente". Ahora deseo que al estar trabajando sobre el formulario principal en automático se me abra este formulario (recordatorio) diario, pero a una hora determinada, pero sólo si es que hay registros en la consulta.

1 Respuesta

Respuesta
1

Supongamos que tu consulta se llama CPendientes.

Lo que tienes que hacer es sacar las propiedades del formulario principal y te vas a la pestaña Eventos y:

- En el evento <Intervalo de cronómetro> escribes 5000

- En el evento <Al cronómetro> le generas el siguiente código:

...

Private Sub Form_Timer()

Const cHoraSup As Date = "12:00:05"

Const cHoraInf As Date = "12:00:00"

Dim vReg As Long

Dim vHora As Date vHora = Format(Now(), "hh:mm:ss")

If vHora >= cHoraInf And vHora < cHoraSup Then

vReg = DCount("*", "CPendientes")

If vReg = 0 then

Exit Sub

Else

DoCmd.Openform "Recordatorio"

End If

End If

End Sub

...

En el valor de la constante cHoraInf deberías escribir la hora a la que quieres que te salga el aviso (respetando el formato). En el valor de cHoraSup tienes que añadirle cinco segundos a la hora. Lo anterior es por seguridad, por si hubiera un pequeño desfase en la comprobación de la hora del sistema.

Recuerda también que debes cambiar el nombre de la consulta que yo he llamado "CPendientes".

Ya me dirás qué tal.

Estimado Neckkito

Muchas gracias por tu respuesta.

Sólo tengo un problema, en la declaración de la variable Hora me marca error de sintaxis, ya intenté cambiarla, pero la verdad ignoro mucho de VB. Podrías ayudarme:

Dim vHora As Date vHora = Format(Now(), "hh:mm:ss")

SALUDOS

Te marca error porque al pasarte el código no me ha separado las líneas, y me ha juntado dos líneas en una.

Te reescribo el código correcto, y aprovecho para ponerte cómo debería ser, por ejemplo, si quieres que el evento se produzca a las ocho de la noche:

...

Private Sub Form_Timer()
Const cHoraSup As Date = "20:00:05"
Const cHoraInf As Date = "20:00:00"
Dim vReg As Long
Dim vHora As Date

vHora = Format(Now(), "hh:mm:ss")
If vHora >= cHoraInf And vHora < cHoraSup Then
vReg = DCount("*", "CPendientes")
If vReg = 0 then
Exit Sub
Else
DoCmd.Openform "Recordatorio"
End If
End If
End Sub

...

Lamento la "pirulilla" que me ha hecho la web.

Ya me dirás qué tal ahora.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas