Cómo conectar MySQL con Excel por VBA - Hielo Creativo
Califica este contenido
[Total: 0 Promedio: 0]

Existen muchas formas de guardar información de una hoja de cálculo de Excel hacia una base de datos. Pero si estamos trabajando en Visual Basic, la mejor forma de hacerlo es a través de un conector ODBC. Traducido al español como Conectividad Abierta entre Base de Datos, ODBC es un estándar creado por el SQL Access Group, un grupo de diversas compañías tecnológicas que se unieron en 1989 buscando la portabilidad e interoperabilidad entre bases de datos.

Prerrequisitos para utilizar ODBC en Windows

Es posible que se necesite un componente llamado Microsoft Visual C++ Redistibutable, a partir de la versión 2022 en adelante. Este componente lo podemos obtener desde Microsoft Learn. Una vez ingresemos al sitio, damos clic en el enlace de la opción X64.

Página de Visual C++ redistributable - Hielo Creativo

En la ventana de dialogo, presiona el botón Guardar para que coloque el archivo en la carpeta Descargas. Si tu navegador descarga todo en automático, no es necesario hacer esto.

Descarga Visual C++ redistributable  - Hielo Creativo

Abre el explorador de archivos, ve a la carpeta Descargas y con un doble clic, procede a iniciar la instalación del componente.

Microsoft Visual C++ redistributable descargado - Hielo Creativo

En la ventana de instalación del programa, marca la opción I agree to the license terms and conditions, luego presiona el botón Install.

Instalar Microsoft Visual C++ redistributable - Hielo Creativo

En la ventana de Control de cuentas de usuario, presiona el botón Si para continuar.

Control de cuentas de usuario de Windows - Hielo Creativo

Pasado unos momentos, la instalación habrá finalizado. Presiona el botón Close para terminar.

Microsoft Visual C++ redistributable instalado - Hielo Creativo

Instalación del controlador ODBC en Windows

Desde la página de descargas de MySQL, descarga el controlador ODBC en su última versión. Para ello, da clic en el botón Download de la opción Windows (x86, 64 bits) MSI Installer.

Página de MySQL ODBC Connector - Hielo Creativo

En la siguiente ventana da clic en la opción No thanks, just start my download. Se encuentra un poco más abajo de los botones Login y Sign Up.

Descarga de MySQL ODBC Connector - Hielo Creativo

En la ventana de dialogo, presiona el botón Guardar. Esto no es necesario si tu navegador hace la descarga automática.

Guardando MySQL ODBc Connector - Hielo Creativo

Abre el explorador de archivos, ve a la carpeta Descargas y con un doble clic, procede a iniciar la instalación del controlador.

MySQL ODBC Connector descargado - Hielo Creativo

En la ventana del instalador, presiona el botón Next para comenzar la instalación.

Comienza instalación de MySQL ODBC Connector - Hielo Creativo

A continuación, selecciona la opción I accept the terms in the license agreement. Después, presiona el botón Next.

Términos de licencia de MySQL ODBC Connector - Hielo Creativo

En la siguiente ventana, deja la opción Typical seleccionada y presiona el botón Next.

Tipo de instalación del MySQL ODBC Connector - Hielo Creativo

Ahora, presiona el botón Install.

Instalar MySQL ODBC Connector - Hielo Creativo

Saldrá una ventana solicitando permisos, presiona el botón Si (No la canceles)

Permisos de Windows para MySQL ODBC Connector - Hielo Creativo

Deja que la instalación haga su trabajo…

Instalando MySQL ODBC Connector - Hielo Creativo

Cuando acabe la instalación, solo presiona el botón Finish.

Instalación finalizada de MySQL ODBc Connector - Hielo Creativo

Una vez terminada la instalación, abre el menú Inicio de Windows y escribe la palabra ODBC. Selecciona la opción Orígenes de datos ODBC (64 bits) y luego da clic en Abrir.

Origen de datos ODBC en Windows - Hielo Creativo

En la ventana de dialogo, selecciona la pestaña Controladores y toma nota del nombre completo del controlador ODBC que acabamos de instalar. Necesitamos el ANSI Driver únicamente. Después de eso, presiona el botón Aceptar.

MySQL ODBC ANSI Driver -Hielo Creativo

Activando el modo programador de Excel

Abre una ventana de Excel, en la parte superior se encuentra el botón Personalizar la barra de herramientas de acceso rápido.

Personalizar la barra de herramientas de Excel - Hielo Creativo

Da clic en ese botón y selecciona la opción Más comandos.

Más comandos de la barra de herramientas de Excel - Hielo Creativo

En la ventana de dialogo Opciones de Excel, da clic en Personalizar la cinta de opciones, luego marca la casilla Programador y presiona el botón Aceptar.

Activando el modo programador de Excel - Hielo Creativo

En la pestaña Programador que ahora aparece, da clic en el botón Visual Basic o presiona Alt + F11

Visual Basic en Excel - Hielo Creativo

El entorno de desarrollo de Visual Basic se debe ver así:

El IDE de Visual Basic en Excel - Hielo Creativo

Añadiendo las elementos necesarios para la conexión

Antes de comenzar a programar, se necesita la referencia al objeto ADODB que será el que puede manejar ODBC. Para ello, ve al menú Herramientas (Tools) y selecciona Referencias (References)

Añadiendo referencias a VBA for Excel - Hielo Creativo

En la ventana de dialogo, busca y selecciona la opción Microsoft ActiveX Data Objects 2.8 Library, después presiona el botón Aceptar (OK)

Microsoft ActiveX Data Objects Library - Hielo Creativo

Los módulos en Visual Basic son archivos de texto que contienen código reutilizable, así que vamos a crear la conexión a nuestra base de datos en un módulo. Para crear un módulo ve a la sección Proyecto (Project), luego presiona el botón derecho del ratón sobre VBA Project. Selecciona la opción Insertar (Insert) y luego la sub-opción Módulo (Module)

Insertar módulo en VBA para Excel - Hielo Creativo

El módulo debe lucir así.

Módulo de Visual Basic for Excel - Hielo Creativo

Creando la conexión a MySQL en Excel

Se necesita una variable de ámbito Global de tipo ADODB.Connection

Global conexion As ADODB.Connection

Crea un procedimiento para realizar la conexión. Los procedimientos son similares a las funciones. En Visual Basic, se definen con la palabra clave Sub.

Sub conectar()
End Sub

Dentro de ese procedimiento, crea una variable de tipo String para formar lo que se conoce como cadena de conexión.

Dim cadena As String

Forma la cadena de conexión concatenando algunos elementos. El primero es el nombre del driver ODBC que instalaste hace rato. Al momento de escribir este artículo es MySQL ODBC 9.5 ANSI Driver, pero recuerda revisar su nombre completo siempre. Por favor, nota el punto y coma (;) antes de finalizar la cadena.

cadena = "DRIVER={MySQL ODBC 9.5 ANSI Driver};"

El segundo elemento incluye el nombre del servidor y la base de datos que vas a utilizar. Si estas trabajando en modo local, recuerda que el nombre debe ser localhost, de otra manera necesitas la dirección IP o el nombre del servidor remoto.

cadena = cadena + "SERVER=localhost;DATABASE=ejemplovba;"

El tercer elemento es el nombre de usuario y la contraseña. Por motivos educativos usa root, pero recuerda que es recomendable que una base de datos tenga sus usuarios propios. Por cierto, si estas usando XAMPP o algún otro software similar, el usuario root puede no tener contraseña o usar el mismo nombre como contraseña.

cadena = cadena + "USER=root;PASSWORD=root;"

Ahora, necesitas crear una instancia de la variable ADODB.Connection.

Set conexion = New ADODB.Connection

Abre la conexión a la base de datos con el método Open

conexion.Open cadena

Si la conexión regresa un estado (State) de 1, entonces se ha logrado la conexión. En caso contrario, no se ha logrado nada.

If conexion.State <> 1 Then
   MsgBox "No se puede conectar a la BD", vbCritical
Else
   MsgBox "Conexion establecida"
End If

Todo el código escrito queda como sigue:

Global conexion As ADODB.Connection
Sub conectar()
    Dim cadena As String
    cadena = "DRIVER={MySQL ODBC 9.5 ANSI Driver};"
    cadena = cadena + "SERVER=localhost;DATABASE=ejemplovba;"
    cadena = cadena + "USER=root;PASSWORD=root;"
    Set conexion = New ADODB.Connection
    conexion.Open cadena
    If conexion.State <> 1 Then
        MsgBox "No se puede conectar a la BD", vbCritical
    Else
        MsgBox "Conexión establecida"
    End If
End Sub

Así va quedando nuestro módulo:

Código en VBA para conectar Excel a MySQL - Hielo Creativo

Creando la base de datos para Excel

Es momento de crear la base de datos que se necesita. En mi caso, tengo un servidor montado con XAMPP que me permite a través de phpMyAdmin gestionar todas mis bases de datos locales. Si tienes una configuración diferente a la mía, tal vez quieras saltar este paso y hacerlo como te funcione.

Lo primero es abrir XAMPP como administrador. En el menú de Inicio de Windows, escribe XAMPP, luego selecciona XAMPP Control Panel y por último Ejecutar como administrador.

XAMPP Control Panel - Hielo Creativo

En la ventana de Control de cuentas de usuario, presiona el botón Si, para permitir la ejecución del programa.

Control de cuentas de usuario en Windows - Hielo Creativo

Una vez abierto XAMPP, presiona el botón de Start de Apache y luego el de MySQL.

Iniciando apache y MySQL en XAMPP - Hielo Creativo

Espera hasta que los nombres de dichos programas, aparezcan en verde.

Apache y MySQL en XAMPP para Windows - Hielo Creativo

Si tenemos una instalación típica, bastará con escribir http://localhost/phpmyadmin en la barra de dirección de tu navegador favorito.

Mostrando phpMyAdmin en el navegador web - Hielo Creativo

A continuación, presiona el botón Nueva que se encuentra en la barra lateral izquierda.

Nueva base de datos MySQL desde phpMyAdmin - Hielo Creativo

En la siguiente ventana, escribe el nombre de la base de datos, luego selecciona utf8_spanish_ci como cotejamiento y presiona el botón Crear.

Crear nueva base de datos MySQL en phpMyAdmin - Hielo Creativo

Con eso la base de datos ha sido creada. No importa que por el momento se encuentre vacía.

Base de datos MySQL vacía - Hielo Creativo

Probando la conexión ODBC en Excel

Regresa a Excel, ve a la pestaña Programador. En ella encontrarás un botón llamado Insertar. Dale clic y selecciona el primer botó de toda la lista llamado Botón (control de formulario)

Insertar botón de formulario en Excel - Hielo Creativo

Dibuja el botón dentro de la hoja de cálculo de la misma forma en como se dibuja un círculo o un cuadrado en el programa.

Dibujando en botón en Excel - Hielo Creativo

Al terminar de dibujar, saldrá la ventana de dialogo Asignar macro. En esa ventana, selecciona el procedimiento conectar que hiciste en el entorno de Visual Basic y presiona Aceptar.

Asignar una macro en Excel - Hielo Creativo

Una vez hecho esto, Dale clic a la etiqueta del botón y cambia el texto por algo más apropiado. Para terminar de editar el botón, solo da clic afuera del mismo.

Etiqueta de un botón en Excel - Hielo Creativo

Para terminar, da clic en el botón que acabas de crear.

Botón de macro en Excel - Hielo Creativo

Si todo sale bien, debes obtener el mensaje de confirmación que programaste en el procedimiento. Con esto ya sabes como conectar una hoja de Excel a MySQL.

Macro para conectar Excel con MySQL - Hielo Creativo

Comentarios, dudas y preguntas

Y eso es todo! No olvides dejar tus comentarios, dudas y / o preguntas. Con gusto las respondemos.

Califica este contenido
[Total: 0 Promedio: 0]

Entradas relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *