Proceso largo = parece bloqueado..

20/10/2003 - 00:39 por Emilio Martín | Informe spam
Saludos amigos,

Se que este tema salio hace tiempo, y aunque he buscado no he logrado
encontrar nada...

Estoy generando una serie de procesos mediante código, y mientras se ejecuta
el access de la impresión de que esta
bloqueado, incluso el formulario parece bloqueado,... al finalizar todo
vuelve a la normalidad sin errores.

Concordaran conmigo que esto es muy feo... ¿que puedo hacer? ¿como hago para
que no quede colgado? ¿algo formulario que diga "procesando... no
interrumpir"... yo lo he intentado y ni siquiera se abre...

Si alguien sabe algo sobre este tema, agradecería mucho la ayuda que me
puedan dar...
Gracias
Emilio

Preguntas similare

Leer las respuestas

#1 E.Feijoo
20/10/2003 - 00:54 | Informe spam
Pon un cuadro de texto oculto en el formulario, lo haces visible /invisible en función de las circunstancias o necesidades, si es 'rebelde' en mostrarse, oblígale con un Me.Repaint (que para eso esta)

Un saludo E. Feijoo

"Emilio Martín" escribió en el mensaje news:bmv3qk$blb$
| Saludos amigos,
|
| Se que este tema salio hace tiempo, y aunque he buscado no he logrado
| encontrar nada...
|
| Estoy generando una serie de procesos mediante código, y mientras se ejecuta
| el access de la impresión de que esta
| bloqueado, incluso el formulario parece bloqueado,... al finalizar todo
| vuelve a la normalidad sin errores.
|
| Concordaran conmigo que esto es muy feo... ¿que puedo hacer? ¿como hago para
| que no quede colgado? ¿algo formulario que diga "procesando... no
| interrumpir"... yo lo he intentado y ni siquiera se abre...
|
| Si alguien sabe algo sobre este tema, agradecería mucho la ayuda que me
| puedan dar...
| Gracias
| Emilio
|
|
Respuesta Responder a este mensaje
#2 Jesus
20/10/2003 - 02:01 | Informe spam
Por muy largo que sea el proceso pienso que algo tienes mal estructurado en
el código.
Una vez me pasó con recordsets, que tardaba en hacer varias operaciones
cerca de un minuto.
El problema lo solucioné en mi caso indexando ciertos campos.
No se tu caso???


"E.Feijoo" <e.feijoo()retemail.es> escribió en el mensaje
news:#0I$
Pon un cuadro de texto oculto en el formulario, lo haces visible /invisible
en función de las circunstancias o necesidades, si es 'rebelde' en
mostrarse, oblígale con un Me.Repaint (que para eso esta)

Un saludo E. Feijoo

"Emilio Martín" escribió en el mensaje
news:bmv3qk$blb$
| Saludos amigos,
|
| Se que este tema salio hace tiempo, y aunque he buscado no he logrado
| encontrar nada...
|
| Estoy generando una serie de procesos mediante código, y mientras se
ejecuta
| el access de la impresión de que esta
| bloqueado, incluso el formulario parece bloqueado,... al finalizar todo
| vuelve a la normalidad sin errores.
|
| Concordaran conmigo que esto es muy feo... ¿que puedo hacer? ¿como hago
para
| que no quede colgado? ¿algo formulario que diga "procesando... no
| interrumpir"... yo lo he intentado y ni siquiera se abre...
|
| Si alguien sabe algo sobre este tema, agradecería mucho la ayuda que me
| puedan dar...
| Gracias
| Emilio
|
|
Respuesta Responder a este mensaje
#3 José Mª Fueyo
20/10/2003 - 02:02 | Informe spam
Emilio, sí tu proceso utiliza de bucles del tipo "do while" o "For...next"
podrías poner una sentencia doevents.
Te copio del MSDN
<pego>
DoEvents (Función)


Cede el control de la ejecución al sistema operativo, para que éste pueda
procesar otros eventos.

Sintaxis

DoEvents( )

Comentarios

La función DoEvents devuelve un tipoInteger que representa el número de
formularios abiertos por una versión independiente de Visual Basic, como la de
Visual Basic Professional edition. DoEvents devuelve 0 en el resto de las
aplicaciones.

La función DoEvents pasa el control al sistema operativo. El control no se
devuelve hasta que el sistema operativo haya terminado de procesar los eventos
en cola y se hayan enviado todas las teclas de la cola SendKeys.

DoEvents es más útil para tareas sencillas como permitir que un usuario cancele
un proceso después de que ha comenzado, por ejemplo una búsqueda de un archivo.
Para procesos de ejecución larga, es mejor dar preferencia al procesador
utilizando un Timer o delegando la tarea a un componente EXE de ActiveX. En
último caso, la tarea puede continuar completamente independiente de la
aplicación y el sistema operativo tiene en cuenta la multitarea y los intervalos
de tiempos.

Advertencia Siempre que dé preferencia al procesador temporalmente dentro de
un procedimiento de evento, asegúrese de que elprocedimiento no se ejecute de
nuevo desde una parte diferente del código antes de que devuelva la primera
llamada. Esto podría causar resultados impredecibles. Además, no utilice la
función DoEvents si existe la posibilidad de que otras aplicaciones interactúen
con el procedimiento, de manera imprevista, durante el tiempo en que éste ha
cedido el control.
</pego>
De esta forma tu aplicación podrá, por ejemplo, mostar el mensaje de "espere..."
o cualquier cosa mientras se va realizando el proceso.

Espero te sirva.

Salu2.
José Mª Fueyo
[MS-MVP Access]
Respuesta Responder a este mensaje
#4 Eva Etxebeste
20/10/2003 - 08:48 | Informe spam
Ay Jesús, si vieras lo que tardan algunos de los míos...
Eva Etxebeste
[MS MVP]
***IMPORTANTE*** Microsoft Security Bulletin MS03-039
http://www.microsoft.com/security/s...03-039.asp

"Jesus" <jherrAlgarrobaWanadu.es> escribió en el mensaje
news:
Por muy largo que sea el proceso pienso que algo tienes mal estructurado


en
el código.
Una vez me pasó con recordsets, que tardaba en hacer varias operaciones
cerca de un minuto.
El problema lo solucioné en mi caso indexando ciertos campos.
No se tu caso???


"E.Feijoo" <e.feijoo()retemail.es> escribió en el mensaje
news:#0I$
Pon un cuadro de texto oculto en el formulario, lo haces visible


/invisible
en función de las circunstancias o necesidades, si es 'rebelde' en
mostrarse, oblígale con un Me.Repaint (que para eso esta)

Un saludo E. Feijoo

"Emilio Martín" escribió en el mensaje
news:bmv3qk$blb$
| Saludos amigos,
|
| Se que este tema salio hace tiempo, y aunque he buscado no he logrado
| encontrar nada...
|
| Estoy generando una serie de procesos mediante código, y mientras se
ejecuta
| el access de la impresión de que esta
| bloqueado, incluso el formulario parece bloqueado,... al finalizar todo
| vuelve a la normalidad sin errores.
|
| Concordaran conmigo que esto es muy feo... ¿que puedo hacer? ¿como hago
para
| que no quede colgado? ¿algo formulario que diga "procesando... no
| interrumpir"... yo lo he intentado y ni siquiera se abre...
|
| Si alguien sabe algo sobre este tema, agradecería mucho la ayuda que me
| puedan dar...
| Gracias
| Emilio
|
|


Respuesta Responder a este mensaje
#5 McPegasus
20/10/2003 - 08:55 | Informe spam
bufffffffffffffffffff :)) esto me recuerda a algo, pero no hemos encontrado
solución, sencillamente y dándote un voto de confianza ;))) de que tu código
es correcto, lo único que te queda es antes justo del proceso y como dice
Enrique, un formulario con un mensaje, y no intentes darle movimiento ni con
.gif animado ni con refresh ni repaint ni ná.

suerte




Filosofía compartida: "regalamos conocimientos, no tiempo."...

y para no perderlo donde no queramos,
http://www.microsoft.com/spain/tech...9-USER.asp




Un Saludo,

Rafael Andrada C.
McPegasus
Valencia (es)

[MS MVP - Access]

www.mcpegasus.com

"Emilio Martín" escribió en el mensaje
news:bmv3qk$blb$
Saludos amigos,

Se que este tema salio hace tiempo, y aunque he buscado no he logrado
encontrar nada...

Estoy generando una serie de procesos mediante código, y mientras se


ejecuta
el access de la impresión de que esta
bloqueado, incluso el formulario parece bloqueado,... al finalizar todo
vuelve a la normalidad sin errores.

Concordaran conmigo que esto es muy feo... ¿que puedo hacer? ¿como hago


para
que no quede colgado? ¿algo formulario que diga "procesando... no
interrumpir"... yo lo he intentado y ni siquiera se abre...

Si alguien sabe algo sobre este tema, agradecería mucho la ayuda que me
puedan dar...
Gracias
Emilio


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida