Tutorial donde explicamos cómo actualizar los datos de una tabla MySQL Server de forma automática usando Microsoft Access, con tablas vinculadas mediante ODBC. Explicamos cómo conectar Microsoft Access con un servidor de MySQL Server. Mostramos también cómo importar una hoja de Excel a Microsoft Access.
- Requisitos para actualizar datos de una tabla MySQL desde Microsoft Access.
- Vincular tabla de MySQL en Microsoft Access.
- Importar hoja de Excel en Access.
- Crear consulta Access para actualizar datos de tabla MySQL.
- Artículos relacionados.
- Créditos
Requisitos para actualizar datos de una tabla MySQL desde Microsoft Access
En este tutorial explicaremos cómo utilizar la herramienta Microsoft Access para actualizar datos de una tabla MySQL Server de forma automática, con consultas Microsoft Access. Para ello, el primer requisito es disponer de un servidor con MySQL Server, que será donde tengamos las tablas a las que accederemos desde Microsoft Access. En los siguientes tutoriales explicamos cómo instalar MySQL Server en distintos sistemas operativos:
Puesto que usaremos Microsoft Access 2007 (es válida cualquier versión) necesitaremos tener esta herramienta instalada con su correspondiente licencia.
Para enlazar Microsoft Access 2007 con MySQL Server usaremos ODBC, en el siguiente tutorial explicamos paso a paso cómo instalar el driver ODBC y cómo vincular tablas de MySQL Server con Microsoft Access:
Como ejemplo, el origen con los datos válidos para
actualizar será una hoja de Excel, explicaremos también cómo importar
una hoja de Excel a Access.
Vincular tabla de MySQL en Microsoft Access
Para realizar este tutorial necesitaremos vincular en Microsoft Access una tabla de MySQL Server, a continuación mostramos un tutorial sobre cómo vincular tablas de MySQL en Access:
Importar hoja de Excel en Access
Como ejemplo para actualizar los datos de una tabla MySQL Server desde Microsoft Access
usaremos los datos de un libro Excel, por lo tanto en primer lugar
importaremos esos datos de Excel a Access, para ello desde la bd de
Access con la tabla vinculada a MySQL (como hemos explicado aquí)
pulsaremos en "Datos externos" - "Excel":
Seleccionaremos el fichero Excel a importar, para ello pulsaremos en "Examinar":
Elegiremos el fichero de Excel a importar a Access y pulsaremos "Abrir":
Seleccionaremos el tipo de importación/vinculación:
- Importar el origen de datos en una nueva tabla de la base de datos actual: se creará una nueva tabla en Access con los datos importados de Excel. La tabla de Access no tendrá relación con la origen de Excel, cualquier cambio en Excel no se actualizará en Access y viceversa.
- Anexar una copia de los registros a la tabla...: si la tabla seleccionada de Access ya existe, agregará los registros a la tabla existente. La tabla de Access no tendrá relación con la origen de Excel, cualquier cambio en Excel no se actualizará en Access y viceversa.
- Vincular al origen de datos creando una tabla vinculada: Access creará una tabla que mantendrá un vínculo a los datos de Excel. Los cambios realizados en los datos de origen Excel se reflejarán en la tabla vinculada. Sin embargo, los datos de la tabla vinculada Access no podrán ser modificados.
Se iniciará el asistente para importación de hojas de
cálculo, si la primera fila de la hoja de Excel contiene encabezados de
columna (título), marcaremos "Primera fila contiene encabezados de
columna" y pulsaremos "Siguiente":
El asistente para importar hojas de cálculo a Access
nos mostrará las columnas de Excel, seleccionaremos cada una e
indicaremos los siguientes datos:
- Nombre de campo: nombre que Access asignará a la columna actual de Excel.
- Tipo de dato: tipo de dato que se asignará al campo de la tabla Access.
- Indexado: si queremos establecer un índice para el campo seleccionaremos "Sí" en el desplegable.
- No importar el campo (Saltar): si no queremos que Access importe este campo marcaremos esta opción.
La segunda columna será el campo "Horas", de tipo "Doble":
El asistente nos detecta una tercera columna que no
queremos importar, la seleccionaremos y marcaremos "No importar el campo
(Saltar)":
A continuación el asistente nos permitirá elegir la
clave primaria (primary key) de la tabla Access que se creará con los
datos Excel, las opciones son:
- Permitir a Access agregar la clave principal: el asistente creará una columna autoincremental que será clave primaria de la tabla.
- Elegir la clave principal: podremos seleccionar como clave primaria alguno de los campos que se importarán de Excel.
- Sin clave principal: no se creará la clave principal.
En nuestro caso, puesto que será una tabla temporal
que solo usaremos para realizar la actualización de datos MySQL no
agregaremos clave principal por lo que marcaremos "Sin clave principal" y
pulsaremos "Siguiente":
Indicaremos el nombre para la tabla Access que se creará con los datos de la hoja Excel seleccionada y pulsaremos "Finalizar":
Tras la importación de Excel a Access el asistente
nos indicará que el proceso ha finalizado y si queremos guardar los
pasos datos de importación para poder usarlos posteriormente como una
plantilla. Pulsaremos "Cerrar":
Si todo ha sido correcto tendremos una nueva tabla en nuestra base de datos Access con los datos de Excel:
Crear consulta Access para actualizar datos de tabla MySQL
En el ejemplo de este tutorial hemos vinculado una
tabla MySQL llamada "usuario" y hemos importado una hoja Excel en una
tabla de nuestra bd Access llamada "usuario_horas". La tabla que
queremos actualizar, "usuario", entre otros campos, tiene uno que es
unívoco y clave principal llamado "DNI" y tiene otro campo llamado
"Horas" que será el que actualicemos. Para actualizar datos de una tabla
a otra en Access hay que usar una columna común entre ambas tablas
cuyos datos sean unívocos (no se repitan), por lo tanto en la tabla
importada de Excel también usaremos el "DNI" como enlace entre ambas.
Crearemos la consulta Access pulsando en "Crear" - "Diseño de consulta":
Seleccionaremos las dos tablas "usuario" y "usuario_horas" y pulsaremos "Agregar":
A continuación indicaremos el tipo de consulta, en nuestro caso será de actualización, por lo que pulsaremos en "Actualizar":
Ahora realizaremos el enlace que comentamos al
principio, usaremos la columna "DNI" como enlace entre ambas tablas, por
lo que seleccionaremos "DNI" de la tabla "usuario" (tabla de MySQL a
actualizar) y lo arrastraremos al campo "DNI" de la tabla
"usuario_horas" (tabla Excel que contiene los datos a actualizar en
MySQL):
En la parte inferior de la consulta de actualización indicaremos los siguientes datos:
- Campo: nombre del campo de la tabla MySQL que queremos actualizar, en nuestro caso "horas".
- Tabla: nombre de la tabla de MySQL que queremos actualizar, en nuestro caso "usuario".
- Actualizar a: indicaremos aquí el nombre de la tabla y campo con los datos para actualizar (la tabla que proviene de Excel), con el formato [nombre_tabla].[campo], en nuestro caso "[usuarios_horas].[horas].
- Criterios: si queremos utilizar algún filtro para la actualización, por ejemplo actualizar sólo aquellos registros de la tabla MySQL "usuario" que tengan el campo "activo" a valor "S", podremos indicarlo con [usuario].[activo]="S".
Si queremos ver la consulta SQL que se Access creará
automáticamente para la actualización pulsaremos en "SQL" en la parte
inferior derecha:
La consulta SQL generada por el asistente para esta actualización será:
UPDATE usuario
INNER JOIN usuarios_horas ON usuario.dni = usuarios_horas.DNI
SET usuario.horas = [usuarios_horas].[HORAS]
WHERE (([usuario].[activo]="S"));
Una vez creada la consulta de actualización
pulsaremos en "Ejecutar" para proceder a actualizar los datos de la
tabla Excel a la tabla MySQL usando Access:
El asistente para actualizar datos nos mostrará el número de registros que se actualizarán, si es correcto pulsaremos "Sí":
Tras el proceso, podremos comprobar los datos actualizados en la tabla vinculada a MySQL "usuario":
Y, por supuesto, al ser una tabla vinculada, la
actualización realizada en Access se habrá aplicado en MySQL
directamente, usando cualquier aplicación para ejecutar consultas y
mostrar el resultado en un servidor MySQL podremos comprobar que los
datos se han actualizado correctamente en la tabla MySQL:
Artículos relacionados
- Acceso a MySQL desde Microsoft Access, driver ODBC 32 bits en Windows 7 x64.
- Exportar una tabla Microsoft Access a MySQL.
- Acceso a una base de datos Microsoft Access desde Microsoft Word.
- Cómo compilar un fichero Access (de MDB a MDE).
- Consultas e informes desde Microsoft Access a Excel.
- Artículos del Proyecto AjpdSoft sobre Microsoft Access.
- Cómo acceder a una BBDD MS Access con Delphi sin utilizar código fuente.
- Cómo instalar MySQL Server en Windows.
- Cómo instalar MySQL Server 6.0 Alpha en Windows XP.
- Instalar y configurar MySQL Server 5 en Linux Suse 10.
- Cómo instalar MySQL Server en Linux y permitir conexiones remotas.
- Cómo exportar o migrar una base de datos MySQL a PostgreSQL de forma manual.
- Tipos de datos data types en el motor de base de datos PostgreSQL.
- Tipos de datos en MySQL Server.
- Acceso a MySQL mediante Visual Basic .Net y ODBC.
- Acceso al motor de base de datos PostgreSQL desde Windows XP con ODBC.
- Instalar el motor de bases de datos PostgreSQL en GNU Linux Debian 5
- Instalar y realizar aplicación web con Oracle Application Express.
- Instalación y configuración de Windows XP Service Pack 3.
- Instalación de Microsoft Windows 7 Ultimate virtualizado en VMware Server 2.0.1.
- AjpdSoft Administración Bases de Datos (ejemplo de acceso con Delphi a Access mediante ODBC, Open Source).
- AjpdSoft Control aula libre acceso (ejemplo de acceso nativo con Delphi a Access, Open Source).
- AjpdSoft Inventario PCs (ejemplo de acceso nativo con Delphi a Access, Open Source).
- AjpdSoft Mostrar Clave Access 97.
- AjpdSoft Usuarios Conectados a MDB.
- Realizar aplicación en Delphi con tablas Paradox en Red.
- Cómo conectar Oracle Database con Access mediante Oracle Transparent Gateway.
- Foros del Proyecto AjpdSoft sobre Microsoft Access con trucos y dudas resueltas.
- Definición ODBC.
- Definición SQL.
Créditos
Artículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft.Artículo en inglés.
No hay comentarios:
Publicar un comentario