Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/02/2010, 09:14
combuilder
 
Fecha de Ingreso: agosto-2009
Mensajes: 101
Antigüedad: 14 años, 8 meses
Puntos: 0
En VB6, crear Enlaces a tablas usando un ODBC a MySQL

Hola a todos!
Tengo una duda muy grande, que no sé cómo resolver.

Se trata de que en Visual Basic 6, quiero hacer una pequeña aplicación para lo siguiente:
1.- Me conecto con una base de datos Access (MDB) --> OK
2.- Genero un ODBC para conectarme con una base de datos de MySQL --> OK
3.- Quiero crear enlaces en MS Access a algunas tablas de MySQL

Los puntos 1 y 2, los tengo solventados, pero me falla el 3.

Respecto al punto 3, SI soy capaz de hacer los enlaces si en vez de un ODBC, es otra base de datos Access. ¿alguna idea?

Porgo aqui el código para hacer los enlaces de Access a Access:
Código:
' Funcion para Crear Enlaces en Bases de Datos de MS Acess.
Public Function CreateMSAccessLink(ByVal strPathDBFrom As String, strTableName As String,  Optional strDBPassw As String) As Boolean
Dim bln As Boolean

Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
On Error GoTo WriteError

bln = False

    ' Si no hay conexion... termino la funcion
    If Not ConnectionState = Connected Then GoTo Ending
     
' Abro el catálogo
Set cat = New ADOX.Catalog
cat.ActiveConnection = objConn

' Creo la nueva tabla
Set tbl = New ADOX.Table
tbl.Name = strTableName
Set tbl.ParentCatalog = cat

' Establezco las propiedades para crear el vínculo con la tabla
' de la segunda base de datos
With tbl
    .Properties("Jet OLEDB:Link Datasource") = strPathDBFrom
    .Properties("Jet OLEDB:Remote Table Name") = strTableName
    .Properties("Jet OLEDB:Create Link") = True
        If Len(strDBPassw) > 0 Then
    ' Establezco la contraseña si es necesario
    .Properties("Jet OLEDB:Link Provider String") = "MS Access;Pwd=" & strDBPassw
        End If
End With

' Añado la tabla a la colección Tables
cat.Tables.Append tbl


  bln = True
  GoTo Ending
WriteError:
  m_lngErrNumber = Err.Number
 m_strErrDesc = Err.Description
 bln = False
Ending:

Set cat = Nothing
Set tbl = Nothing

 CreateMSAccessLink = bln
End Function
Supongo que seria simplemente cambiar las propiedades .... ¿alguna idea?

Muchas gracias!