Sql

Estoy haciendo consultas en mi programa que tiene tablas de la bd original y una tabla con una conexión. Como hago cuando en un recorset, utilizo una consulta, y necesito utilizar tablas de ambas conexiones, a quien refiero en la conexión del recordset.
Ejemplo:
RS.open "Select d.una, f.dos from Una, Dos", CNX
Resulta que UNA es una tabla de una conexion; y DOS es una tabla de otra conexión.
¿En el recorset que abro que conexión coloco?

2 Respuestas

Respuesta
1
Esto que querés hacer no se puede. El problema es que el recordset tiene una sola conexión.
Hay varias maneras de "saltear" este problema, dependiendo del tipo de base de datos. Ejemplo:
1) Si la base es Access podes hacer una tabla linkeada a la tabla de la otra conexión y después hacer la consulta sobre la primera conexión (Access).
2) Si la base es SQL Server podes definir un Linked Server a otro SQL, access, excel, etc.
Podrías explicarme con u ejemplo y código lo que me dices en la opción no. 2.
Lo primero que tienes que hacer es definir el Linked Server en la parte de seguridad. Esto lo haces siguiendo los pasos en el asistente.
Una vez hecho esto lo único que hay que hacer es llamar a las tablas de la siguiente manera:
linked_server.base.dbo.tabla
Donde LINKED_SERVER es el nombre del linked server, BASE es el nombre de la base de datos en el otro server, y TABLA el nombre de la tabla a la que quieres acceder. DBO es el standard para el owner de la base, pero debería cambiarse por el user ID que creo esa tabla.
También te sirve para acceder a Views y StoredProcedures.
Ej:
SELECT T1.CAMPO1, T2.CAMPO2 FROM T1, LINKED_SERVER.BASE.dbo.TABLA AS T2
En este caso la tabla T1 esta en el server actual y la T2 en el servidor linkeado.
Respuesta
Puedes utilizar cualquiera lo único que haces es al utilizar las tablas de la otra conexión indicar en nombre de base de datos ejm:
CNUNA 1 conexión de la BD DB1
CNDOS 2 conexión de la BD DB2
Si utilizas la conexión primera CNUNA seria así:
Rs. Open "SELECT A.Nombre, B.Ventas From Clientes A, DB2.. Facturas B WHERE...", CNUNA

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas