Como retardar unos segundos la ejecución de algunas acciones de un evento del formulario en Access

Buscando como retardar la ejecución de algunas acciones de un evento de un formulario, me he encontrado con el método "Wait" con el siguiente VBA que mas adelante describiré

Lamentablemente no funciona o no se como aplicarlo. Alguien podría colaborarme, ya que la mayoría de los ejemplos que hay en la red son muy complejos y la mayoría están orientados a Excel.

Como muchos no soy un experto en Access, agradezco su paciencia y tiempo dedicado. Un abrazo.

If Application.Wait(Now + TimeValue("0:00:10")) Then 
 MsgBox "Time expired" 
End If

2 Respuestas

Respuesta
1

Le dejo 2 formas:

Public Sub subPausa(tiempo As Byte) 'tiempo en segundos
Dim ahora As Date
Dim ahoraTiempo As Date
ahora = Time
ahoraTiempo = DateAdd("s", tiempo, ahora)
Do Until ahora >= ahoraTiempo
ahora = Time
Loop
End Sub

Puede guardar a nivel de módulo de formulario este código lo llama donde quiere hacer la pausa de 8 segundos así:

Call subPausa(8)

Este otro con la API de Windows, copie este código en un módulo

#If VBA7 Then
    Declare PtrSafe Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
#Else
    Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
#End If
Sub retardar(N As Integer)
'N = número de segundos a esperar
    Dim i As Integer
    For i = 1 To N
        Sleep 1000
    Next
    DoEvents
End Sub

Llámelo de cualquier parte así:

Call retardar(5)

Hace una pausa de 5 segundos. Prefiero este y lo uso cuando tomo una foto, para dar tiempo a que la imagen se guarde en disco para insertarla en una tabla en la nube que está en PostgreSQL.

Eduardo, sospecho que me enviaste el código traducido al español, así como lo describiste  no me funciona.

Como que no funciona si lo tengo en uso. Algo está haciendo mal

Respuesta
1

En Access no conozco la existencia de una función integrada para genera retardos, se crean especificas para el propósito.

Hay de dos tipos básicos:

A.- Detiene a Access (mas bien lo entretiene) un tiempo xx, Access queda pausado (a todos los efectos) y puede crear confusión al usuario al creer que se le bloqueo la maquina.

B.- Genera una pausa que se puede abortar y le permite hacer otras tareas mientras dura la pausa.

Cada método tiene ventajas e inconvenientes así que dependerá de la tarea a retardar el utilizar uno u otro.

enrique, podrías colaborarme con un ejemplo?

"Se crean especificas para el propósito"

Como funciones de tipo generalista (adaptables) ya te han ofrecido ejemplos ¿no te sirven como punto de partida?.

Si se necesitan para algo en concreto (por ejemplo envío de datos en segundo plano) tendrás que aportar información lo mas fiel que te sea posible.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas