** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Shell espera finalice programa
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoShell espera finalice programa

 Responder Responder
Autor
Mensaje
pepepot Ver desplegable
Asiduo
Asiduo


Unido: 24/Noviembre/2006
Estado: Sin conexión
Puntos: 244
Enlace directo a este mensaje Tema: Shell espera finalice programa
    Enviado: 26/Septiembre/2015 a las 13:11
Hola buenas

¿Existe alguna forma de que Access espere a que acabe la ejecución de un programa ejecutado con Shell?

En la ayuda de la función Shell pone:
"De forma predeterminada, la función Shell ejecuta otros programas de forma asincrónica. Esto significa que un programa iniciado mediante Shell quizás no termine de ejecutarse antes de que se ejecuten las instrucciones que siguen a la función Shell."

Esto para mi es un inconveniente porque Shell llama a un programa gestor de descargas para descargar un archivo de datos. El proceso salta a la siguiente línea que importa los datos de dicho fichero, pero como el archivo está todavía bajándose Access me dice que no lo puede abrir porque está siendo utilizado por otro programa, en este caso el gestor de descargas.

Puedo hacer una pausa de X tiempo pero es una mala solución porque no sé el tiempo que va a tardar en descargar el archivo y ese tiempo varía dependiendo de la velocidad de internet donde se ejecute el programa o bien lo pesado que sea el archivo.

¿Existe alguna forma de que Access espere a que acabe la ejecución de un programa ejecutado con Shell?

Gracias


Editado por pepepot - 26/Septiembre/2015 a las 13:55
Arriba
pepepot Ver desplegable
Asiduo
Asiduo


Unido: 24/Noviembre/2006
Estado: Sin conexión
Puntos: 244
Enlace directo a este mensaje Enviado: 26/Septiembre/2015 a las 13:55
He encontrado esta solución, por si a alguien le interesa.
(se puede cerrar el hilo)

Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
Dim errorCode As Integer
wsh.Run "c:\..........", windowStyle, waitOnReturn
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable