Cuando comienzas a crear aplicaciones en Access Web, lo primero que llama
la atención es que a diferencia del Access de Escritorio no tiene un módulo
para la creación de informes. Son muchísimas las bondades de Access Web y no me
voy a detener en este artículo a enumerarlas exhaustivamente (posibilidad de
trabajar desde cualquier sitio donde haya conexión a internet al correr sobre
web, la creación muy fácil e intuitiva
de los formularios, no es necesario tener conocimientos de VBA para programar
multitud de automatizaciones ya que consta con un fantástico y práctico módulo
de macros, etc. etc.).
El propósito de este artículo, sin embargo, es detenerme en uno de los
aspectos negativos de Access Web, la inexistencia de un módulo de informes y
ayudaros con mi experiencia a solventarlo, de manera que no resulte para nada
un obstáculo a la hora de decidirse a crear aplicaciones en Access Web.
Access Web, está concebido actualmente por Microsoft como un programa para
creación de bases de datos y aplicaciones basadas en bases de datos cuya
finalidad principal es la captura de datos y su alojamiento en la nube. Y os
preguntareis, seguro, ¿para que queremos una aplicación de facturación, por
ejemplo, que no nos pueda reportar una factura? Que la aplicación web no pueda
reportar la factura, no significa de ningún modo que no se pueda, simplemente
que debemos utilizar otras vías.
¿Cómo crear entonces informes en este tipo de aplicaciones? El propio
entorno de Access Web te propone la solución: Crear una base de datos para el
programa cliente que establezca una conexión a su base de datos de Servicios de
Access.
Con sólo hacer clic en “Crear Informes” se crea una base de datos en Access
de Escritorio conectada con la base de datos de Access Web que está alojada en
SQL Azure, donde poder crear tus informes.
Fácil, ¿verdad? Pero si fuese tan fácil este artículo no tendría mucha
razón de ser. La realización de los informes mediante este método tan sencillo
que encontramos en el mismo Access Web tiene un serio problema. Cuando atacamos
las tablas para la creación de un informe, lo más habitual es tener que usar
datos de varias tablas mediante consultas. Si tenemos que crear una factura,
tendremos los albaranes en una tabla de albaranes, el desarrollo del albarán en
otra tabla diferente, los datos del cliente, en una tabla de clientes, los
productos en una tabla de productos, etc., etc. Creamos la consulta, combinamos
todos los datos que necesitamos, creamos el informe y…. ¡¡¡¡¡¡horrorrrr!!!!,
ejecutando consulta….. 30 segundos….. ejecutando consulta…. 1 minuto…..
ejecutando consulta….. 1 minuto 30 segundos… et voilá! Aquí está nuestra
factura, unos 2 minutos después de dar a vista preliminar del informe.
La creación de informes se encuentra con este serio problema de no fácil
resolución…, o sí. Las consultas sobre las tablas que nos crea el propio Access
Web atacan directamente las tablas vinculadas alojadas en el servidor Sql de
Azure, por lo que la consulta tarda en ejecutarse un mundo.
¿Podemos convertir las tablas vinculadas en locales y así no tarda nada en
hacer las consultas verdad? Genial, una solución. Pero la base de datos está en continua transformación, metemos
albaranes todos los días, hemos quitado la vinculación con las tablas donde se
insertan los datos, tenemos que crear un sistema para la actualización de estos
datos… bufff. Mejor mantenemos las tablas vinculadas. Esta no es la solución.
La solución es obvia, pero aun así nos llevó mucho tiempo encontrarla,
buscamos en foros especializados y no encontrábamos solución. Teníamos un
cliente esperando 2 minutos cada vez que quería imprimir un albarán y
necesitábamos darle una respuesta. Casi arrojamos la toalla. Decidimos cambiar
el sistema, en lugar de hacer los informes en Access, decidimos hacerlos en
Excel, creando un cubo en PowerPivot y automatizando la creación del documento
en Word, mucho trabajo, pero en cuanto estuviera listo, el cliente sólo tendría
que apretar un botón y en 5 segundos tendría su factura en Word o en PDF. Nos
pusimos manos a la obra, pero, de repente, se nos encendió la bombilla…..
¿Habéis pensado en la solución mientras leíais el artículo? Ahora que la
sabemos, no nos explicamos cómo tardamos tanto en darnos cuenta. La solución es
muy sencilla. Las consultas en las que obtenemos todos los datos para el
informe que necesitamos, no hay que hacerlas en el Access de Escritorio que
ataca las tablas vinculadas que están en el servidor. Las consultas hay que
hacerlas en el propio servidor, es decir, hay que hacerlas en el Access Web y
vincular la consulta, del mismo modo que vinculamos las tablas, en nuestro
Access de Escritorio donde creamos los informes. El resultado es espectacular.
Aprietas el botón para generar el informe y lo tienes abierto ipso facto.
Solución sencilla, una vez que la conoces y que esperamos que resuelva vuestros
problemas en la generación de informes, si alguna vez los habéis tenido.
No sabemos si Microsoft planea crear un módulo de informes para Access Web,
pero ello no nos va a privar de seguir usándolo ya que son muchísimas sus
ventajas y trabajamos constantemente para superar sus inconvenientes.