Post by ***@hotmail.comnecesito saber como vincular tablas de fuentes de datos ODBC en
BD de Access2000, lo anterior desde Visual Basic; pero dichas
fuentes de datos tienen diferentes origenes de Datos (SQLServer -
Access - MySql - Informix). Es de aclarar que los PC's donde se va
a ejecutar la aplicacion final no tiene instalado office.
Hola:
Disculpa que no te haya respondido en correo privado, pero las consultas que
llegan a mi correo privado, las prefiero responder directamente en el grupo
de noticias, de esta forma, la contestación que haga es pública, y también
le puede venir bien a otros usuarios. ¿OK?
El pasado día 27, ya te dije lo que tenías que hacer para vincular tablas de
una base de datos de Access en otra base de datos de Access. Por tanto, me
remito a la información que ya te ofrecí en dicho mensaje.
Te insisto que para poder trabajar con bases de datos de Access 2000 en
Visual Basic, en todos los PCs que vayas a utilizar, deben tener instalado
al menos la versión 4.0 del motor Microsoft Jet. También deberás de tener
instalada y debidamente registrada, la biblioteca de acceso a datos que
vayas a utilizar para vincular las tablas: DAO o ADOX.
En vista que deseas vincular tablas, cuyos orígenes de datos son ODBC, lo
primero que debes de hacer es registrar en tu sistema el correspondiente
Orígen de Datos con Nombre (DSN). Asimismo, te indico que no puedes utilizar
ODBC para vincular a tu base de datos Microsoft Access, una tabla externa de
Microsoft Jet (Access) o de una base de datos ISAM (Excel, dBASE, Paradox,
Texto delimitado). Estas últimas las podrás vincular directamente con la
biblioteca de DAO o ADOX, pero no a través de ODBC.
Por tanto, lo único que te voy a explicar es cómo vincular vía ODBC, una
tabla de SQL Server a una base de datos Microsoft Access, porque es el único
origen de datos que conozco, dado que MySQL, Informix y Oracle, nunca he
trabajado con ellos.
Si en tu sistema tienes creado un origen de datos ODBC debidamente
configurado para establecer una conexión con el servidor de SQL Server,
mediante la biblioteca de DAO puedes vincular la tabla en una base de datos
de Access, de la siguiente manera:
Dim db As Database
Dim td As TableDef
' Abro la base de datos de Access
Set db = OpenDatabase("C:\Mis documentos\Bd1.mdb")
' Creo un objeto TableDef.
Set td = db.CreateTableDef("Tabla de SQL vinculada")
' Establezco la información de conexión.
td.Connect = "ODBC;DSN=Nombre_DSN;" & _
"WSID=Nombre_Equipo;" & _
"DATABASE=Base_Datos_SQL;Trusted_Connection=Yes"
' Indico la tabla que deseo vincular
td.SourceTableName = "dbo.Nombre_Tabla"
' Anexo el objeto TableDef para crear el vínculo
db.TableDefs.Append td
MsgBox "Se ha vinculado correctamente la tabla."
Te advierto que si la tabla de SQL Server no tiene un índice único, los
datos serán de sólo lectura. Para más información, consulta el siguiente
artículo de la Base del Conocimiento (en inglés):
ACC: Remote ODBC Tables Are Read-Only Without a Unique Index
http://support.microsoft.com/default.aspx?scid=kb;en-us;90100
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.