Excel y bases de datos MySQL
Conectarse a una base de datos MySQL desde Microsoft Excel (utilizando Connector/ODBC) para recuperar registros y visualizarlos en un formulario VBA. En esta oportunidad detallaremos paso a paso como crear una consulta desde un formulario en Excel VBA utilizando Mysql como motor de base de datos.
Lo primero es ya tener nuestra base de datos con los siguientes campos:Conectarse a una base de datos MySQL desde Microsoft Excel (utilizando Connector/ODBC) para recuperar registros y visualizarlos en un formulario VBA. En esta oportunidad detallaremos paso a paso como crear una consulta desde un formulario en Excel VBA utilizando Mysql como motor de base de datos.
Nombre de la tabla:
departamento
Nombre de los campos:
IdDep
NomDepartamento
Ya teniendo todo listo con algunos datos, quedaría como en la imagen.
Para poder visualizar nuestros datos necesitaremos de un formulario que se llamara "Form_Prueba" como el de la imagen, un combobox que lo llamaremos "Cbo_Municipio" y un botón que le pondremos "Bton_Salir"
Sub Departamentos()
On Error GoTo tratar_errror
Dim rsMySql As ADODB.Recordset
Dim strMySql As String
Set rsMySql = New ADODB.Recordset
strMySql = "select IdDep, NomDepartamento from departamento;" 'Nuestra consulta SQL, que vemos en la imagen anterior en Workbench
rsMySql.Open strMySql, connMySql
'El combo se crea con 2 columnas uno para el ID y el Otro para el Nombre
Form_Prueba.Cbo_Municipio.Clear ' Limpio el combo
Form_Prueba.Cbo_Municipio.ColumnCount = 2 'Numero de columnas que necesitamos
Form_Prueba.Cbo_Municipio.ColumnWidths = "20;100" 'Ancho de las columnas
Form_Prueba.Cbo_Municipio.TextColumn = 2 'Visualizaremos la columna 2 al seleccionar un dato
Do While Not rsMySql.EOF
Form_Prueba.Cbo_Municipio.AddItem rsMySql.Fields("NomDepartamento")
Form_Prueba.Cbo_Municipio.List(i, 1) = rsMySql.Fields("NomDepartamento")
Form_Prueba.Cbo_Municipio.List(i, 0) = rsMySql.Fields("IdDep")
i = i + 1
rsMySql.MoveNext
Loop
rsMySql.Close
Exit Sub 'Sale si no da error
tratar_errror:
End Sub
Y el el formulario el siguiente código
Private Sub UserForm_Initialize()
Call ConexionMysqlCall Departamentos
End Sub
Private Sub Bton_Salir_Click()
Unload MeCall CierraConexion
End Sub
Utilizaremos los códigos en una publicación anterior, para poner en práctica, lo que se refiere a la conexion y cerrar la conexion, si todo va bien, el resultado que obtendremos será como la siguiente imagen.
Espero que le encuentren utilidad.
No hay comentarios :
Publicar un comentario