Los informes de MS-Access muestran una vista de diseño tras la ejecución
-
06-07-2019 - |
Pregunta
He creado un informe en el informe de MS Access y escribo un código VBA para recuperar datos y mostrar el informe en formato MS-Word. Pero mientras genera el informe en tiempo de ejecución, el informe primero muestra o muestra la vista de diseño del informe durante unos segundos y el informe se generará.
Me gustaría encontrar una solución para evitar este parpadeo de la vista de diseño al generar el informe. ¿Es posible en esta codificación MS-Access o VBA? ??
Estoy publicando las líneas que solía llamar al informe de acceso desde el código del formulario de acceso.
DoCmd.OpenReport primero! [Argumento], acPreview
esto generará el informe, pero la pantalla de diseño parpadea durante unos segundos mientras se ejecuta.
Y no hay ningún código VBA escrito en el informe de acceso.
La ejecución real es, he preparado los datos en una tabla de acceso temporal y genero el informe a partir de la tabla.
El problema aquí es que, al iniciar el informe en modo de vista previa, la pantalla de diseño del informe muestra unos pocos segundos. Esto se ve mal por parte de los usuarios.
Solución
¿Qué sucede si prueba este código?
Dim strReport As Report
strReport = rst!Argument
If SysCmd(acSysCmdGetObjectState, acReport, strReport) Then
DoCmd.Close acReport, strReport
End If
DoCmd.OpenReport strReport, acPreview
Lo que hace ese código es verificar si el informe ya está abierto en alguna vista y luego lo cierra si es así, luego lo abre. Eso asegura que no estás en la vista de diseño con la ventana oculta.
Y el código también evita posibles problemas de referencia de ByRef que puedan estar asociados con pasar un valor de un conjunto de registros al comando OpenReport.
Otros consejos
Parece que está abriendo el informe en la vista de diseño para cambiar alguna propiedad. Es posible evitar esto, pero deberá publicar el código que abre el informe para asegurarse.
¿Cómo está exportando el informe a MS-Word? ¿Cuál es el código?
¿Ha intentado lo mismo con un informe simple (con una fuente de datos de tabla) en lugar de usar el código VBA? Tal vez el VBA está tardando tanto en ejecutarse que mantiene abierto el Informe en modo de diseño el tiempo suficiente para ser perceptible.
Me sucede lo mismo cuando llamo a un Informe de MS Access desde una aplicación VB6. La razón por la que sucede en mi caso es porque tengo un formulario configurado para aparecer al inicio. Si no tiene un formulario de inicio seleccionado, no debería ser visible, por lo tanto, no parpadeará.
Avísame si esto ayuda.
Mike