Cómo exportar una tabla de una base de datos Microsoft Access a MySQL Server. Se exportará tanto la creación de la tabla como los datos que contiene. Explicamos también cómo acceder a una tabla MySQL desde Microsoft Access (tablas vinculadas por ODBC).
- Añadir esquema en MySQL con MySQL Administrator.
- Instalación del Driver ODBC de MySQL y nuevo origen de datos.
- Exportación de la tabla desde Access a MySQL.
- Acceso a tabla de MySQL desde Access con tabla vinculada por ODBC.
- Modificar estructura de la tabla exportada en MySQL.
- Tecnología empleada para realizar este artículo.
Añadir esquema en MySQL con MySQL Administrator
En primer lugar tendremos que dar de alta un nuevo esquema en MySQL Server (salvo que queramos utilizar uno ya existente). Para darlo de alta podremos instalar MySQL Administrator (herramienta gratuita de MySQL). Tras instalarlo, abriremos MySQL Administrator e introduciremos el «Server Host» (ip ó nombre de red del servidor de MySQL), el «Port» (puerto), por defecto 3306, el «Username» (nombre de usuario con suficientes permisos como para crear esquemas), el «Password» (contraseña del usuario anterior). Pulsaremos OK para conectarnos:
En «Catalogs» pulsaremos con el botón derecho y seleccionaremos «Create New Schema»:
Introduciremos el nombre del catálogo, esquema o base de datos de MySQL, por ejemplo «ajpdsoft»:
Instalación del Driver ODBC de MySQL y nuevo origen de datos
Tras crear el esquema en MySQL Server con MySQL Administrator, deberemos tener instalado el Driver ODBC de MySQL para crear el origen de datos ODBC que conectará Microsoft Access con MySQL.
Una vez instalado el driver ODBC nos crearemos una conexión desde «Inicio» – «Configuración» – «Panel de control» – «Herramientas administrativas» – «Orígenes de datos (ODBC)»:
Pulsaremos en «Agregar» para añadir el nuevo origen de datos ODBC de MySQL:
En la lista de controladores seleccionaremos MySQL ODBC 5.1 Driver (o la versión que se haya instalado):
Introduciremos los siguientes datos:
- «Data Source Name»: nombre que queramos darle a la conexión ODBC para luego poder ser referenciada, por ejemplo «ajpdsoft».
- «Description»: descripción libre de la conexión, para poder identificarla si tenemos varias.
- «Server»: nombre ó IP del servidor de MySQL Server, en nuestro caso «localhost».
- «Port»: puerto de MySQL (por defecto 3306).
- «User»: nombre del usuario con el que nos conectaremos a MySQL, en nuestro caso «root».
- «Password»: contraseña del usuario anterior.
- «Database»: nombre del catálogo, esquema o base de datos creada anteriormente en MySQL, en nuestro caso «ajpdsoft».
Si queremos realizar una prueba de conexión podemos pulsar en «Test», para guardar el origen de datos pulsaremos «OK»:
Exportación de la tabla desde Access a MySQL
Ahora abriremos nuestra tabla de Access, la que queramos exportar a MySQL. Pulsaremos con el botón derecho del ratón sobre la tabla a exportar, en nuestro caso «telefono», y en el menú emergente que aparece seleccionaremos «Guardar como o exportar»:
Seleccionaremos «En un archivo o una base de datos externos» y pulsaremos «Aceptar»:
En la ventana de selección de base de datos, en el desplegable «Guardar como tipo» seleccionaremos «Bases de datos ODBC»:
Nos pedirá el nombre de la tabla que se creará en MySQL, en nuestro caso «telefono»:
Seleccionaremos el origen de datos (creado en pasos anteriores «ajpdsoft»), en la pestaña «Origen de datos de equipo» y pulsaremos «Aceptar»:
Aparecerá una barra de progreso en Access, el tiempo en realizar la exportación a MySQL dependerá del tamaño de la tabla Access.
Acceso a tabla de MySQL desde Access con tabla vinculada por ODBC
Para comprobar que se ha exportado correctamente podemos utilizar MySQL Query Browser o bien vincular la tabla desde el propio Access:
Seleccionamos «Bases de datos ODBC»:
Seleccionamos el origen de datos ODBC MySQL creado «ajpdsoft»:
Seleccionamos la tabla exportada «telefonos» (para que no nos pida contraseña cada vez marcaremos «Guardar contraseña»):
Si no es capaz de encontrar la clave primaria de la tabla MySQL, Access mostrará una ventana para indicarle manualmente qué campo es clave primaria. Este paso es muy importante pues si no se le indica una clave primaria la tabla vinculada no podrá ser modificada, sólo servirá a efectos de consulta. En nuestro caso, la clave primaria es «numero»:
Tras vincularla podremos tratarla como si de una tabla Access se tratara, por ejemplo abrirla para ver los registros que contiene:
Desde esta ventana, al igual que si fuera Access, aparecen todas las opciones de ordenar, filtrar, buscar, imprimir, exportar, insertar, modificar, eliminar, etc. Todos los cambios que se hagan en esta tabla se aplicarán directamente a la tabla de MySQL a la que está vinculada:
Modificar estructura de la tabla exportada en MySQL
Ahora abriremos MySQL Administrator para ver la estructura de la tabla exportada, pues hay determinados tipos de datos y restricciones que no se exportan correctamente de Access a MySQL, como por ejemplo el tipo «Autoincremento» de Access.
Desde MySQL Administrator, seleccionaremos el esquema «ajpdsoft», pulsaremos con el botón derecho del ratón sobre la tabla «telefono» y seleccionaremos «Edit Table»:
Podremos cambiar aquí los tipos de datos que no se hayan exportado correctamente. Por ejemplo, la columna «numero» en Access es clave primaria, en cambio, al exportarla a MySQL no se ha marcado como clave primaria (primary key):
Desde MySQL Administrator podremos marcarla como clave primaria:
O ejecutando la consulta SQL:
1 2 3 |
ALTER TABLE `ajpdsoft`.`telefono` MODIFY COLUMN `numero` VARCHAR(40) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT NULL, ADD PRIMARY KEY (`numero`); |
Tecnología empleada para realizar este artículo
- MySQL Server 4.1.
- Windows XP SP3.
- Microsoft Access 97.