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

También te podría gustar...

2 Respuestas

  1. Daniel dice:

    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

Deja una respuesta

Tu dirección de correo electrónico no será publicada.