Hola a todos, tengo 2 PC con Windows 7 de 32 bits y Excel 2010 y MySQL 6.2. A estos 2 equipos ya le instalamos los conectores "mysql-connector-odbc-3.51.30-win32.msi" y "mysql-connector-odbc-5.1.13-win32.msi" (instalé 2 para ver cuál me funcionaba). He conectado Excel con MySQL dentro de la misma PC, es decir, con la base de MySQL que se encuentra en la misma computadora donde hice la conexión (localhost), pero no lo he logrado de una PC a la otra PC. Debo decir que tengo conocimientos muy básicos de MySQL y redes. Lo que pretendo es conectar mi Excel con la base de MySQL de la otra PC para traer una tabla, hacer modificaciones y regresarla a MySQL, todo esto mediante Excel VBA. He buscado códigos en internet y no he logrado adaptarlos a mi necesitad.
No hay error cuando usamos MySql que tenemos en nuestro mismo equipo:
MiServidor = "localhost"
El error es al tratar de indicar el IP de el otro equipo:
MiServidor = "10.200.XXX.XX"
Sub ExcelMySql20160921()
'variable para la conexión
Dim Conexion As New ADODB.Connection
'idem para el nombre del servidor en este caso estoy empleando una versión en local
Dim MiServidor As String
'ahora la base de datos en este caso se llama directorio y la tabla example
Dim Dd As String
'variables para usuario y contraseña (no la creo porque no la tengo en el servidor, en otro caso hay que crearla
Dim User As String
'variables para la tabla que tiene sólo tres campos
Dim i As Long, Tabla, Nombre, Edad, Consulta As String
'el Recordset
Dim rs As ADODB.Recordset
'———————————————————————-
'Estableciendo la conexión
'———————————————————————-
MiServidor = "10.200.XXX.XX"
Db = "northwind"
User = "root"
Set Conexion = New ADODB.Connection ' con esto utilizamos la conexión indicada más arriba
Conexion.Open "DRIVER={MySQL ODBC 5.1 Driver}" & _
";SERVER=" & MiServidor & _
";DATABASE=" & Db & _
";UID=" & User & _
";OPTION=1"
Set rs = New ADODB.Recordset
Consulta = "SELECT * FROM example"
rs.Open Consulta, Conexion, adOpenStatic
With Worksheets(1).Cells
.ClearContents
.CopyFromRecordset rs
End With
'Cerramos la conexión
On Error Resume Next
rs.Close
Set rs = Nothing
Conexion.Close
Set Conexion = Nothing
On Error GoTo 0
End Sub
Indicando en el codigo cualquiera de los dos drivers que tenemos instalados el error da igual:
"Se ha producido el error '-2147467259(80004005)' en tiempo de ejecucion:
[MySql][ODBC 3.51]Host 'mc2530003dc0404' is not alluwed to connect this MySql server
Tenemos instalados los dos drivers y con los dos lo intentamos, los corroboramos en esta ruta:
Panel de control\Todos los elementos de Panel de control\Herramientas administrativas\Orígenes de datos ODBC\Controladores
MySQL ODBC 3.51 Driver
MySQL ODBC 5.1 Driver
Muchas gracias por el apoyo.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola a todos, tengo 2 PC con Windows 7 de 32 bits y Excel 2010 y MySQL 6.2. A estos 2 equipos ya le instalamos los conectores "mysql-connector-odbc-3.51.30-win32.msi" y "mysql-connector-odbc-5.1.13-win32.msi" (instalé 2 para ver cuál me funcionaba). He conectado Excel con MySQL dentro de la misma PC, es decir, con la base de MySQL que se encuentra en la misma computadora donde hice la conexión (localhost), pero no lo he logrado de una PC a la otra PC. Debo decir que tengo conocimientos muy básicos de MySQL y redes. Lo que pretendo es conectar mi Excel con la base de MySQL de la otra PC para traer una tabla, hacer modificaciones y regresarla a MySQL, todo esto mediante Excel VBA. He buscado códigos en internet y no he logrado adaptarlos a mi necesitad.
No hay error cuando usamos MySql que tenemos en nuestro mismo equipo:
MiServidor = "localhost"
El error es al tratar de indicar el IP de el otro equipo:
MiServidor = "10.200.XXX.XX"
Sub ExcelMySql20160921()
'variable para la conexión
Dim Conexion As New ADODB.Connection
'idem para el nombre del servidor en este caso estoy empleando una versión en local
Dim MiServidor As String
'ahora la base de datos en este caso se llama directorio y la tabla example
Dim Dd As String
'variables para usuario y contraseña (no la creo porque no la tengo en el servidor, en otro caso hay que crearla
Dim User As String
'variables para la tabla que tiene sólo tres campos
Dim i As Long, Tabla, Nombre, Edad, Consulta As String
'el Recordset
Dim rs As ADODB.Recordset
'———————————————————————-
'Estableciendo la conexión
'———————————————————————-
MiServidor = "10.200.XXX.XX"
Db = "northwind"
User = "root"
Set Conexion = New ADODB.Connection ' con esto utilizamos la conexión indicada más arriba
Conexion.Open "DRIVER={MySQL ODBC 5.1 Driver}" & _
";SERVER=" & MiServidor & _
";DATABASE=" & Db & _
";UID=" & User & _
";OPTION=1"
Set rs = New ADODB.Recordset
Consulta = "SELECT * FROM example"
rs.Open Consulta, Conexion, adOpenStatic
With Worksheets(1).Cells
.ClearContents
.CopyFromRecordset rs
End With
'Cerramos la conexión
On Error Resume Next
rs.Close
Set rs = Nothing
Conexion.Close
Set Conexion = Nothing
On Error GoTo 0
End Sub
Indicando en el codigo cualquiera de los dos drivers que tenemos instalados el error da igual:
"Se ha producido el error '-2147467259(80004005)' en tiempo de ejecucion:
[MySql][ODBC 3.51]Host 'mc2530003dc0404' is not alluwed to connect this MySql server
Tenemos instalados los dos drivers y con los dos lo intentamos, los corroboramos en esta ruta:
Panel de control\Todos los elementos de Panel de control\Herramientas administrativas\Orígenes de datos ODBC\Controladores
MySQL ODBC 3.51 Driver
MySQL ODBC 5.1 Driver
Muchas gracias por el apoyo.