VBA Excel 2010 conexión con Mysql

Reciba un cordial saludo desde Colombia.
Quiero preguntarle por que razón al realizar el siguiente código de conexión de Excel (VBA) 2010 con una base de datos Mysql:

Dim oConn As ADODB.Connection
Dim rs As ADODB.Recordset
'
''''''Function ExcelMySql()
On Error GoTo err
Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=localhost;" & _
"DATABASE=base;" & _
"USER=Facturación;" & _
"PASSWORD=1234**;" & _
"Option=4"
'''''Exit Function
Exit Sub
err:
MsgBox "Se ha producido el siguiente error: " & err.Description, vbInformation, ActiveWorkbook.Name
''''''End Function
'
'''''''Function esc(txt As String)
esc = Trim(Replace(txt, "'", "'"))
''''''''End Function
Exit Sub
'
'
'''''''''''Function InsertData()
On Error GoTo Er
'Se elimina la llamada a la función de conexión a la base de datos para hacerlo cuando inicie el archivo
' Call ConnectDB
Set rs = New ADODB.Recordset
sFunction = Application.WorksheetFunction.CountA(Range("A:A"))
'
With shInsertData
For rowCursor = 3 To sFunction
strSQL = "INSERT INTO informacion_facturado (Id, Titulo Minero, Tipo, Ciclo, Producto, Zona, Etapa_contrarcual) " & _
"VALUES ('" & esc(.Cells(rowCursor, 1)) & "', " & _
"'" & esc(.Cells(rowCursor, 2)) & "', " & _
"'" & esc(.Cells(rowCursor, 3)) & "', " & _
"'" & esc(.Cells(rowCursor, 4)) & "', " & _
"'" & esc(.Cells(rowCursor, 5)) & "', " & _
esc(.Cells(rowCursor, 6)) & ", " '& _
Next
End With
MsgBox "Exito", vbInformation
'''''' Exit Function
Exit Sub
Er:
MsgBox "Error: " & err.Description, vbInformation, ActiveWorkbook.Name
'''''''End Function
''''''''End Function
End Sub

La aplicación no me realiza la conexión con la base de datos, me aparece, el siguiente error: [Microsoft] [Administrador de Controladores ODBC] No se encuentra el nombre de origen de datos y no se especifico ningún controlador predeterminado.
¿A qué se deberá eso?

3 Respuestas

Respuesta
1

Verificate tu cadena de conexión en esta pagina y verifica los otros estilos de cadenas de conexión de acuerdo a lo que estas utilizando, esta cadena es utilizando OleDB

http://www.connectionstrings.com/mysql-oledb-mysqlprov/

Muchas gracias de nuevo experto, pero probando la cadena de conexión que usted me facilito por el enlace no me sirvió,

utilizo el siguiente enlace:

oConn.Open "Provider={MySQL ODBC 5.2 Driver};" & _
"Data Source=base;" & _
"User Id=Facturación;" & _
"Password=1234**"

pero me dice que "No se encontró el proveedor especificado, es posible que este mal instalado"

remplace "Provider={MySQL ODBC 5.2 Driver};" por "Provider={MySQL ODBC 3.51 Driver};"

y me dice lo mismo, no se en donde este el problema..

Si usas la conexión ODBc recuerda que debes crear el odbc en el sistema, ¿no sera que no lo estas creando?

Respuesta

Lo ultimo que te dice el mensaje de error, " no se especifico ningún controlador predeterminado no se especifico ningún controlador predeterminado"

Creo que se debe a la linea del código
"oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _",

En la que especificas que realizaras uso de un driver de sql, los numero es la versión que estas utilizando, probaste en buscar el controlador, ¿descargarlo e instalarlo?

Respuesta

Con respecto a este post yo tenia ese problema y me encontré de esta pagina:

https://www.connectionstrings.com/mysql-connector-odbc-5-2/ https://www.connectionstrings.com/mysql-connector-odbc-5-2/ 

Aquí te indica todas las posibles conexiones con diferentes plataformas en mi caso corro dos macros una por parte de windows y otra con ubuntu me sirvieron a la perfección, con respecto de windows es debido a que tienes que instalar el ODBC a 32 bit independiente de que OS sea de 64 bits esto debido a la compatibilidad con mysql

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas