Ante esta pregunta: ¿Alguien podría decirme como puedo cargar un recordset con una sentencia sql que uniera (join) dos tablas pero que están en dos base de datos (mdb) distintas? O lo que sería lo mismo, como relacionar dos tablas que están en conexiones distintas (objeto connection de ADO)?. Responde Enrique Martinez (SoftJaen) ==================================== Salvo que alguien me demuestre lo contrario, no se puede combinar mediante INNER JOIN dos tablas pertenecientes a dos bases de datos distintas. La vinculación de la tabla externa sería la solución, y hasta recomendable, debido a que mejora el rendimiento y la facilidad de uso. Pero si no quieres vincularla, la única posibilidad que te queda es que crees una simple consulta de selección (o un procedimiento almacenado) de la tabla externa, en la base de datos activa, para posteriormente combinarla con la tabla que desees. En la base de datos actual, creo una consulta de selección llamada [Consulta Facturas] de la tabla 'Facturas', la cual se encuentra en una base de datos distinta: SELECT * FROM Facturas IN 'C:\BdFacturas.mdb'; Posteriormente ejecuto el siguiente código: Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim sChainSQL As String With cnn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=C:\bd1.mdb" .CursorLocation = adUseClient .Open End With ' Creo una combinación entre la tabla 'Clientes' y la consulta ' [Consulta Facturas], de la base de datos actual, la cual hace ' referencia a una tabla de una base de datos externa sChainSQL = "SELECT Clientes.IdCliente, Clientes.Nombre, " & _ "[Consulta Facturas].IdFactura FROM Clientes INNER JOIN " & _ "[Consulta Facturas] ON Clientes.IdCliente = " & _ "[Consulta Facturas].IdCliente;" ' Abro el recordset rs.Open sChainSQL, cnn, adOpenDynamic, adLockBatchOptimistic, adCmdText MsgBox rs.RecordCount ' leo los registros del Recordset