La Web del Programador: Comunidad de Programadores
 
    Pregunta:  19660 - VINCULACIóN DE TABLAS DE DIFERENTES BASES DE DATOS
Autor:  Rodrigo Arredondo
Hola:
Tengo un problema. ¿Cómo puedo vincular dos tablas pero con bases de datos diferentes respectivamente?.
Estoy trabajando con MySQL y VB, se que para vincular dos tablas pero con la misma base de datos se utiliza la sentencia INNER JOIN, quisiera por favor me pudieran ayudar con una explicación y un ejemplo, ya sea utilizando Recordsets o las sentencias de SQL.

De antemano Gracias.

  Respuesta:  Daniel Guevara
Bueno te comento que no lo he hecho con SQL sino con access aunque no creo que sea mucha la diferecia, rescate esta rutina de Visual la utilizo poruqe tengo una aplicacion que funciona en sistio con equipos que cambian mucho de dirrecion, simplemente tomo la ubicación de donde esta la base de datos y donde esta la base de datos de donde quiero vincualr, elimino las tablas vinculadas y las vuelvo a vincular desde la nueva ubicacion.

Espero haberte ayudado un poco

Public Sub ADJUNTOS(Ori As String, des As String)
' Adjunta las tablas necesarias para el programa

Dim MBBB As Database
Dim MBBB2 As Database
Dim sConnect As String
Dim tbl As TableDef
Dim tdf As TableDef
Dim i As Integer
Dim sTmp As String

Set MBBB = OpenDatabase(des) ' A DONDE SE VINCULA
Set MBBB2 = OpenDatabase(Ori) ' DE DONDE SE VINCULA
sConnect = ";database=" & MBBB2.Name
Screen.MousePointer = vbHourglass

On Error Resume Next
For Each tdf In MBBB.TableDefs
If (tdf.Attributes And dbAttachedTable) = dbAttachedTable Or _
(tdf.Attributes And dbAttachedODBC) = dbAttachedODBC Then
sTmp = "DROP TABLE [" & tdf.Name & "]"
MBBB.Execute sTmp
End If
Next

For Each tdf In MBBB2.TableDefs
If (tdf.Attributes And dbAttachedTable) = dbAttachedTable Or _
(tdf.Attributes And dbAttachedODBC) = dbAttachedODBC Then

Else
If (tdf.Attributes And dbSystemObject) <> dbSystemObject Then
Set tbl = MBBB.CreateTableDef(tdf.Name)
tbl.SourceTableName = tdf.Name
tbl.Connect = sConnect
MBBB.TableDefs.Append tbl
End If
End If
Next
On Error GoTo 0
Screen.MousePointer = vbDefault
Exit Sub

AttachErr:

' Resume 'x

End Sub