|
Access: Consultas e informes desde Microsoft Access a Excel
Mostramos en este artículo cómo conectar una base de datos Microsoft Access con una hoja de cálculo Microsoft Excel directamente (dinámicamente). Realizaremos la vinculación de tablas y crearemos algunas consultas e informes en Access con tablas vinculadas a hojas de Excel. Os explicamos cómo vincular tablas en Access 97, Access 2003 y Access 2007.
Algunas definiciones iniciales (Access, Excel)Definición Microsoft AccessMicrosoft Access es un programa Sistema Gestor de Base de Datos Relacional (SGBDR del inglés Relational DataBase Management System o RDBMS) creado por Microsoft para uso personal de pequeñas organizaciones. Es un componente de la suite Microsoft Office. Es un software de gran difusión entre pequeñas empresas (PYMES) cuyas bases de datos no requieren de excesiva potencia, ya que se integra perfectamente con el resto de aplicaciones de Microsoft y permite crear pequeñas aplicaciones con unos pocos conocimientos del Programa. Microsoft Access permite crear formularios para insertar y modificar datos fácilmente. También tiene un entorno gráfico para ver las relaciones entre las diferentes tablas de la base de datos. Tiene un sistema de seguridad de cifrado bastante primitivo y puede ser la respuesta a proyectos de programación de pequeños y medianos tamaños. Para bases de datos de gran volumen (de datos o de usuarios) es recomendable usar otros SGBDR como MySQL, Microsoft SQL Server, Oracle Database, IBM DB2, Firebird, PostgreSQL, etc. Pues Microsoft Access no está diseñada para soportar un gran volumen de datos o un gran número de usuarios conectados concurrentemente. Tampoco está diseñada para funcionar a través de Internet. Entre sus mayores inconvenientes figuran que no es multiplataforma, sólo está disponible para sistemas operativos de Microsoft. Su uso es inadecuado para grandes proyectos de software que requieren tiempos de respuesta críticos. Microsoft Access es "similar" a otros motores de base de datos SGBDR de escritorio como SQLite, Paradox (de Borland), DBASE, FoxPro A continuación os mostramos las extensiones típicas de los archivos que componen una base de datos Access:
Definición Microsoft ExcelMicrosoft Office Excel es una aplicación desarrollada por Microsoft para crear y manejar hojas de cálculo. Es utilizado, normalmente, en tareas financieras y contables. La última versión de esta hoja de cálculo, la 2007, incluye las siguientes características:
A continuación os mostramos las extensiones típicas de los archivos que componen una hoja de cálculo Excel:
Escenario de trabajo, fichero ExcelEn primer lugar dispondremos de una hoja de cálculo Excel, que será la que contenga los datos principales de la aplicación. En realidad esto no es lo habitual, pero nos ceñiremos al título del artículo. Lo normal es que Access sea la base de datos principal de la aplicación. Pero para este caso supondremos un escenario de trabajo donde la hoja de cálculo Excel es la base de datos principal de la aplicación. Así pues dispondremos de un fichero .xls de Excel, en nuestro caso con el siguiente contenido:
Este fichero Excel irá siendo actualizado por los usuarios, de forma que será la base de datos principal. En nuestro caso, el nombre del fichero es Cursos.xls: Creación de la base de datos Access y vinculación de Excel para generar informesAhora crearemos una base de datos Access (.mdb ó .accdb) y vincularemos Access con Excel de forma dinámica. Explicaremos cómo hacerlo para las versiones 97, 2000 y 2007, aunque el proceso es similar para todas las versiones. Creación base de datos y vinculación con Excel en Access 97Para crear la base de datos abriremos Access, desde "Inicio" - "Programas" - "Microsoft Office" - "Microsoft Access", en la primera ventana seleccionaremos "Base de datos en blanco" y pulsaremos "Aceptar": Indicaremos el nombre de la base de datos y la carpeta donde la guardaremos, por ejemplo "AjpdSoft Cursos": En la pestaña "Tablas" pulsaremos el botón "Nuevo": Puesto que queremos añadir una viculación a una tabla externa seleccionaremos "Vincular tabla" y pulsaremos "Aceptar": En "Tipo de archivo" indicaremos "Microsoft Excel", Access permite vincular tablas de otros tipos como DBASE, FoxPro, Paradox, ODBC (con este método podremos vincular tablas MySQL, Microsoft SQL Server, Oracle Database, IBM DB2, Firebird, PostgreSQL, SQLite, etc.). En nuestro caso seleccionaremos "Microsoft Excel" y buscaremos el fichero de Excel a vincular, en nuestro caso "Cursos.xls" y pulsaremos en "Vincular": Si tenemos varias hojas en el libro de Excel, el Asistente para vinculación de hojas de cálculo, mostrará una ventana como la siguiente para seleccionar la hoja que vincularemos a Access: Si la primera fila de la hoja de Excel contiene los títulos de las columnas marcaremos "Primera fila contiene títulos de columnas", pulsaremos "Siguiente": Indicaremos el nombre que tendrá la tabla vinculada en Access, en nuestro caso "Cursos". Pulsaremos en "Terminar": Si todo es correcto nos mostrará un mensaje como el siguiente, indicando que la vinculación se ha realizado correctamente:
A partir de este momento tendremos en Access acceso directo a la hoja de cálculo Excel vinculada, haciendo doble clic sobre "Cursos" o seleccionando esta tabla y pulsando en "Abrir" veremos su contenido: Dicho contenido es el que hay en el fichero de Excel, de hecho, si realizamos cualquier cambio en esta tabla vinculada se reflejará directamente en el fichero de Excel, de ahí que sea una vinculación dinámica. Hay que tener en cuenta que mientras la tabla esté abierta en Access no será accesible desde Excel: Si intentamos abrir el fichero de Excel con el propio Excel nos mostrará un aviso como este:
Creación base de datos y vinculación con Excel en Access 2003Para el caso de Access 2003, el proceso es similar, lo abriremos, pulsaremos el botón "Nuevo" y en la parte derecha pulsaremos en "Base de datos en blanco...": Indicaremos la carpeta y el nombre de la base de datos Access 2003, en nuestro caso "AjpdSoft Cursos" y pulsaremos "Crear": En "Objetos" - "Tablas", pulsaremos con el botón derecho y seleccionaremos "Vincular tablas...": En "Tipo de archivo" seleccionaremos "Microsoft Excel", buscaremos el fichero de Excel que queramos vincular y lo seleccionaremos: En nuestro caso marcaremos "Primera fila contiene títuls de columnas": Indicaremos el nombre que tendrá la tabla de Access: Si la vinculación es correcta mostrará este mensaje: Haciendo doble clic sobre la tabla "Cursos" vinculada o seleccionándola y pulsando en "Abrir": Veremos el contenido de la hoja de cálculo Excel, como hemos dicho para el caso de Access 97, cualquier cambio que se realice en esta tabla será guardado directamente en el fichero de Excel:
Creación base de datos y vinculación con Excel en Access 2007Abriremos Access 2007, pulsaremos en "Base de datos en blanco": En la parte derecha de la ventana indicaremos el "Nombre de archivo" y la carpeta de destino, en nuestro caso "AjpdSoft Cursos.accdb". Pulsaremos en "Crear": Pulsaremos en el grupo "Datos externos" y seleccionaremos "Excel": Pulsaremos en "Examinar" para seleccionar el fichero de Excel que queremos vincular a Access 2007: Seleccionaremos el fichero de Excel a vincular: Marcaremos "Vincular al origen de datos creando una tabla vinculada" y pulsaremos "Aceptar": Si la el libro de Excel tiene varias hojas, seleccionaremos la que queramos vincular: Si la primera fila contiene los títulos de columna marcaremso "Primera fila contiene encabezados de columna": Indicaremos el nombre para la tabla de Access vinculada: Si todo es correcto mostrará este aviso: Desde Access 2007 podremos consultar la tabla vinculada a Excel: Podremos ver los datos en tiempo real, pero no podremos modificarlos:
Generación de consultas e informes en AccessComo se ha podido observar en el proceso anterior (creación y vinculación de tablas), la metodología es similar para todas las versiones de Access. A continuación explicaremos cómo realizar consultas e informes en Access para mostrar determinados datos de la tabla de Excel vinculada, que al igual que en el caso anterior, el proceso es similar para todas las versiones de Access. Generación de consultas e informes en Access 2007Desde el grupo "Crear", en "Otros" pulsaremos en "Asistente para consultas": Seleccionaremos "Asistente para consultas sencillas": En la parte izquierda aparecerán los campos disponibles para la consulta, pulsando el botón ">" pasaremos el campo disponible a campo seleccionado (aparecerá en la consulta). En la parte superior indicaremos la tabla o consulta origen de datos para esta consulta, en nuestro caso la tabla "Cursos" creada anteriormente como tabla vinculada de fichero Excel: Indicaremos el título que tendrá la consulta, si queremos ver la vista de diseño marcaremos "Modificar el diseño de consulta", si queremos ver directamente el resultado de la ejecución de la consulta marcaremos "Abrir la consulta para ver información": En nuestro caso vemos el diseño de la consulta: Desde el diseño podremos modificar la consulta agregando o quitando columnas, agregando filtros (criterios), agregando nuevas tablas, etc. Por ejemplo, para mostrar sólo los alumnos cuyos apellidos lleven la palabra "aj", en "Criterios" de esta columna añadiremos:
Ejecutando la consulta (pulsando en "Ejecutar") podremos ver el resultado: También podremos ver la consulta SQL real que genera Access, pulsando en "Ver" - "Vista SQL": Desde esta vista también podremos modificar la consulta, aunque necesitaremos tener conocimientos de SQL: La consulta SQL que Access ha generado de forma automática:
Hagamos ahora una consulta un poco más compleja. Por ejemplo, para el caso del fichero de Excel, hagamos una consulta que muestre el número de alumnos que se han matriculado en el CURSO1:
La vista en modo gráfico de esta consulta será: Compliquemos un poco más la consulta, hagamos que muestre el número de alumnos que se han matriculado en cada curso, para ello utilizaremos la cláusula "UNION":
Lógicamente, esta no es la mejor forma (o la más óptima) de guardar los datos de los cursos, lo lógico es que hubiera tres tablas, una para los alumnos, otra para los cursos y una tercera para los cursos a los que se han inscrito los alumnos. Pero puesto que utilizamos Excel como origen de datos, nos ajustamos a su estructura: Esta consulta SQL no es del todo "correcta", pues repite el nombre de los cursos y no los suma. Para corregirla guardaremos esta consulta con el nombre "ctCursosAlumnos": Ahora crearemos una nueva consulta, como origen de datos seleccionaremos la consulta creada anteriormente "ctCursosAlumno": Marcaremos "Resumen" pues queremos agrupar por el campo "Curso": Marcaremos "Suma" para que sume las agrupaciones: Pulsaremos "Siguiente": Indicaremos el nombre de la consulta, por ejemplo "Alumnos por curso": Y el asistente de Access habrá creado la consulta de forma automática. En realidad lo único que ha hecho es agrupar por la columna CURSO (con nombre CURSO1) y en "Total" del campo "Alumnos_Curso" ha añadido "Suma": La consulta SQL que ha generado:
Y la consulta en ejecución: Una vez realizada la consulta, para realizar el informe, el proceso es bastante sencillo, en primer lugar seleccioanremos la consulta creada "Alumnos por curso", a continuación, en "Crear" - "Informes", pulsaremos en "Informe": El asistente seleccionará automáticamente como origen de datos la consulta seleccionada y generará el informe con los campos de la consulta, podremos ver la vista de diseño desde "Vistas" - "Vista Diseño", para modificar y adaptar el informe a nuestras necesidades: Para ver cómo quedará en la impresión pulsaremos en "Vistas" - "Vista preliminar":
Artículos relacionados
CréditosArtículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft. Anuncios
Enviado el Jueves, 27 agosto a las 14:01:25 por ajpdsoft
|
|