Rescatar datos para Conexión Mysql desde Xml en Vba Excel
Buenas tardes en esta oportunidad les traigo un breve tutorial que explica como hacer nuestra conexión dinámica en Excel.
Lo primero es crear un XML y guardarlo en una ruta de fácil acceso en este ejemplo usaremos C:\ y el archivo que presento a continuación:
MySQL ODBC 5.2 ANSI Driver localhost 3306 quality root 1234
Para rescatar todos estos datos desde el editor VBA es necesario declarar las variables como globales para de esta manera poder utilizarlas en cualquier parte de su código.
Public Driver As String Public Port As String Public DataBase As String Public Server As String Public User As String Public Clave As String
Ya con estos parámetros definidos procedemos a cargar las variables. Para esto es muy importante agregar la referencia Microsoft XML, v6.0.
Sub RecuperarDatosXml() Dim xmldoc As MSXML2.DOMDocument60 On Error GoTo Errores Set xmldoc = New MSXML2.DOMDocument60 xmldoc.async = False xmldoc.Load ("C:\Configuracion.xml") Driver = xmldoc.SelectSingleNode("//Configuracion/Driver").Text Port = xmldoc.SelectSingleNode("//Configuracion/Port").Text DataBase = xmldoc.SelectSingleNode("//Configuracion/DataBase").Text Server = xmldoc.SelectSingleNode("//Configuracion/Servidor").Text User = xmldoc.SelectSingleNode("//Configuracion/User").Text Clave = xmldoc.SelectSingleNode("//Configuracion/Password").Text Set xmldoc = Nothing Exit Sub Errores: MsgBox Err.Description Err.Clear End Sub
Para este ejemplo utilizare las funciones creadas en el post anterior Aprender a crear funciones en Excel utilizando Mysql.
Private Function Conectar() As Boolean On Error GoTo Ver Private Function Conectar() As Boolean On Error GoTo Ver Set Conn = New ADODB.Connection Conn.ConnectionString = "driver={MySQL ODBC 5.2 ANSI Driver};" & _ "Server=localhost;" & _ "Port=3306;" & _ "Database=quality;" & _ "User=root;" & _ "Password=1234;" & _ "Option=3;" Conn.Open Conectar = True Exit Function Ver: Err.Clear Conectar = False End Function
Sin embargo para que realmente sea dinámico debemos llamar a la función RecuperarDatosXml() y modificar el string de conexión quedando de la siguiente manera.
Private Function Conectar() As Boolean On Error GoTo Ver Private Function Conectar() As Boolean On Error GoTo Ver Set Conn = New ADODB.Connection Call RecuperarDatosXml Conn.ConnectionString = "driver={ " & Driver & "};" & _ "Server=" & Server & ";" & _ "Port=" & Port & ";" & _ "Database=" & DataBase & ";" & _ "User=" & User & ";" & _ "Password=" & Clave & ";" & _ "Option=3;" Conn.Open Conectar = True Exit Function Ver: Err.Clear Conectar = False End Function
Espero sea de su utilidad.
Saludos
Buen dia,
gracias por la explicacion es muy clara, solo tengo una duda si lo hago de esta forma tengo necesidad de instalar el driver(mysql connector odbc)en mi windows?
gracias
Efectivamente debes instalar el conector o driver si tienes dudas sobre la instalación puedes ver el siguiente link:
https://www.qis.cl/importar-datos-desde-mysql-con-excel-2010/
Saludos y quedamos atentos a tus comentarios