En una ocasión anterior, aprendimos a conectar MySQL y Excel por medio del componente MySQL for Excel, en esta ocasión haremos lo mismo pero utilizando un conector ODBC con el objetivo de crear aplicaciones en VBA (Visual Basic for Applications) que utilicen MySQL como almacén principal de datos ¿Quieres saber cómo? ¡Manos a la obra!
Tabla de Contenido
Descargando e instalando el conector ODBC
Lo primero que necesitamos realizar es la descarga del conector ODBC de MySQL. Al momento de llegar a la página oficial, seleccionamos el instalador de 64 bits (MSI Installer)
En la siguiente página, seleccionamos la opción No thanks, just start my download.
Lo guardamos en un lugar seguro.
Es momento de abrirlo e instalarlo.
En algunos casos, sobre todo si es la primera vez que estamos configurando este tipo de componentes, se nos solicitará instalar un componente adicional llamada Visual Studio 2019 x64. Presionemos el botón OK para cerrar este ventana.
Y luego el botón Finish para cerrar de momento el instalador.
Es hora de instalar el Visual Sutdio 2019 x64 redistributable, al ingresar en su página oficial descargamos la versión x64 obviamente.
Lo guardamos en un lugar seguro.
Ejecutemos este último archivo primero.
Marquemos la opción I agree to the license terms and conditions y luego presionamos el botón Install.
En la ventana de Control de cuentas de usuario, presionamos el botón Sí.
El primer componente ha quedado instalado, presionemos el botón Close para cerrar esta ventana.
Es tiempo de instalar el conector ODBC ahora que ya no hay ningún otro requisito.
En la primera ventana, presionamos el botón Next.
Después, seleccionamos I accept the terms in the license agreement y presionamos Next.
En la siguiente ventana, dejamos la opción Typical seleccionada y nuevamente presionamos Next.
Por último, presionamos el botón Install.
En el Control de cuentas de usuario, presionamos el botón Si.
Presionamos Finish para terminar.
Activando el modo programador de Excel
En la ventana de Excel, damos clic en la opción Personalizar barra de herramientas de acceso rápido.
Elegimos Más comandos.
En la ventana de diálogo, seleccionamos la opción Personalizar cinta de opciones en la lista de la izquierda, luego marcamos la opción Programador y presionamos el botón Aceptar.
Ahora que ya tenemos la pestaña Programador, presionamos el botón Visual Basic para comenzar.
El entorno debe verse así
Añadiendo la referencia necesaria
Antes de comenzar a programar, necesitamos añadir la referencia al objeto ADODB que será el que nos permitirá usar el ODBC. Para ello, vamos al menú Herramientas y luego escogemos Referencias.
En la siguiente ventana, seleccionamos Microsoft ActiveX Data Objects 2.8 Library y luego presionamos el botón Aceptar.
Programando el módulo para la conexión
En la ventana de Proyecto, presionamos el botón derecho del ratón sobre VBAProject, luego elegimos Insertar y por último tomamos la opción Módulo.
El módulo luce así.
Lo primero que necesitamos es una variable de ámbito Global y de tipo ADODB.Connection
Global conexion As ADODB.Connection
Lo siguiente que debemos hacer, es crear el procedimiento para hacer la conexión. Los procedimientos son similares a las funciones, en Visual Basic se definen con la palabra clave Sub.
Sub conectar()
End Sub
Trabajaremos dentro de ese procedimiento. Necesitamos una variable de tipo String para formar lo que se conoce como cadena de conexión.
Dim cadena as String
Formaremos la cadena concatenando algunos elementos. El primero es el nombre del driver ODBC que usaremos. Al momento de escribir este artículo, es MySQL ADOC 8.0 ANSI Driver. Por favor, nota el punto y coma antes de finalizar la cadena.
cadena = "DRIVER={MySQL ODBC 8.0 ANSI Driver};"
El segundo elemento incluye el nombre del servidor y la base de datos que usaremos. Si estamos en modo local, recuerda que el nombre es localhost de otra manera se necesita la ip o nombre del servidor.
cadena = cadena + "SERVER=localhost;DATABASE=ejemplo;"
El tercer elemento es el nombre de usuario y contraseña. Por motivos educativos usaremos a root, pero recuerda que es recomendable crear un usuario propio.
cadena = cadena + "USER=root;PASSWORD=;"
Una vez creada la cadena, abrimos la conexión con ella.
conexion.Open cadena
Si la conexión regresa el valor de estado 1, entonces hemos logrado una conexión. Si obtenemos un valor diferente terminamos al programa.
If conexion.State = 1 Then
MsgBox "Conexión establecida"
Else: End
End If
Nuestro código debe quedar como sigue:
Creando la base de datos
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 trabajar con el servidor. Si tienes una instalación o configuración diferente, tal vez quieras saltar este paso y hacerlo como te funcione.
Lo primero es abrir XAMPP e iniciar tanto Apache como MySQL, presionando su correspondiente botón Start. Debemos esperar hasta que cambie a Stop y los programas aparezcan en color verde.
Si tenemos una instalación típica, bastará con escribir http://localhost/phpmyadmin/ en la barra de dirección de nuestro navegador web.
A continuación, presionamos el botón Nueva que se encuentra en la barra lateral izquierda.
En la siguiente ventana, escribimos el nombre de la base de datos, escogemos utf8_spanish_ci como cotejamiento y presionamos el botón Crear.
Como podemos observar, la base de datos ha sido creada. No importa que por el momento se encuentre vacía, en futuras entradas tocaremos esos temas.
¡Es hora de probar la conexión!
Regresemos a Excel, específicamente a la pestaña Programador. En ella encontraremos un botón llamado Insertar.
Al darle clic al botón, este nos mostrará una lista con más botones. Elegimos el primero de toda la lista llamado Botón(control de formulario)
Después, lo dibujamos dentro de nuestra hoja de cálculo de la misma forma en como lo hacemos con las formas y objetos típicos de Excel.
AL terminar de dibujarlo, nos saldrá la ventana de diálogo Asignar macro. En esa ventana, seleccionamos nuestro procedimiento conectar que hicimos en el entorno de Visual Basic y presionamos Aceptar.
Una vez hecho eso, le damos clic a la etiqueta del botón y la cambiamos por un texto más apropiado. Para terminar de editar el botón, solo hay que dar clic afuera del mismo.
Para terminar, demos clic al botón que acabamos de crear.
Y si todo salió bien, deberíamos obtener el mensaje de confirmación que programamos en el procedimiento.
Y eso es todo por ahora ¿Te ha resultado? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.
Docente, IT Manager, Blogger & Developer. Escribo por diversión, educo por pasión. | Grandstanding is not my thing.