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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top