|
|
Informes : Informes dentro de un formulario
| Autor/es: Juan M Afán de Ribera | | Pregunta : ¿Existe alguna manera de poder ver los informes de mi base de datos dentro de un control OLE, a la manera en que puedo hacerlo con un documento de Word o una hoja de cálculo de Excel? | Respuesta : Sí. Puedes utilizar un control Snapshot Viewer para ello.
El control Snapshot Viewer es un control ActiveX programable en VBA y que reproduce fielmente el formato en el que están hechos los informes de Access. Desde la versión 2000 se instala junto con Access y por tanto debería estar disponible en tu sistema si utilizas una versión a partir de ésa. Además, también a partir de entonces, existe en Access el formato de exportación acFormatSNP -"Snapshot Format (*.snp)". Si no lo tienes o quieres actualizarlo, podrás descargarte la última versión disponible en este enlace.
La técnica/truco que utilizo en el ejemplo que podéis descargar de la sección Ejemplos (más abajo) es la siguiente:
- Exporto un informe a un archivo snapshot (*.snp), con la instrucción DoCmd.OutputTo
- Por código asigno ese archivo recién exportado a la propiedad SnapshotPath del control Snapshot Viewer que tengo incrustado en mi formulario
- Borro el archivo exportado anteriormente, pues el control ya lo ha "memorizado"
Sencillo, ¿no?
Bien, aún así, si utilizamos las versiones Access XP o 2003, nos encontraremos con un pequeño problema, y es que con la instalación de estas versiones se graba en el registro de Windows un valor erróneo para el formato de exportación snapshot. Este valor erróneo consiste simplemente en que se ha traducido al castellano un texto que debería estar en inglés (lo que me hace suponer que esto debe pasar para todas las versiones que no sean en inglés). Donde debería decir "snp,,1,Snapshot Format (*.snp),0" el registro de Windows tiene "snp,,1,Formato Snapshot (*.snp),0".
En fin, en el ejemplo también he escrito un código que, de paso, corregirá ese error, si ese fuera vuestro caso.
Espero que os sea de utilidad. | Ejemplos: informesenform | Temas relacionados: Visualizar informes de Access en una aplicación Visual Basic |
|