Discussion:
Vincular Tablas Access 97 en un ADP
(demasiado antiguo para responder)
Eduardo S.
2006-04-12 18:18:01 UTC
Permalink
Hola a Todos:

Estoy desarrollando un proyecto en Access 2000 (adp) y requiero vincular una
tabla externa que se encuentra en un mdb de Access 97.

Pensaba que se vinculaba igual que en un mdb, pero en el adp me aparece
deshabilitada la función "link tables".

¿ Alguién me podría decir por qué ? y como podría reesolver este
inconveniente.

De antemano gracias por su colaboración.
José Mª Fueyo
2006-04-14 21:38:30 UTC
Permalink
Hola Eduardo.
Los proyectos adp están pensados para trabajar con bases de datos de SQL
Server, no con otros ficheros de Access (mdb). Por tanto, no podrás vincular
tablas.
Sí tienes necesidad de acceder a los datos de un mdb, podrías hacerlo desde
tu adp mediante programa, usando para ello DAO ó ADO (mejor DAO. El
proveedor de Jet 3.51 no funcionaba muy fino).

Salu2
--
José Mª Fueyo
[MS MVP Access]
Ju@nK
2006-04-15 09:34:39 UTC
Permalink
Eso no es totalmente cierto, mediante odbc puedes vincular tablas de un mdb
en un adp sin mayores problemas, solamente te cambiará el nombre de la tabla
poniendo por delante el nombre de la base y te la meterá en una consulta
(vista) en lugar de en tablas, ejemplo:

SELECT *
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Password="";User ID=Admin;Data Source=C:\Documents
and Settings\JuanK\Escritorio\Prueba.mdb;Mode=ReadWrite;Extended
Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet
OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database
Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk
Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System
Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale
on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet
OLEDB:SFP=False'
)...[Original] Rowset_1
--
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.

Salu2
***@nK [MVP Access] [DCE2003 ***] + VSTO [DCE2005 **]
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com
Post by José Mª Fueyo
Hola Eduardo.
Los proyectos adp están pensados para trabajar con bases de datos de SQL
Server, no con otros ficheros de Access (mdb). Por tanto, no podrás
vincular tablas.
Sí tienes necesidad de acceder a los datos de un mdb, podrías hacerlo
desde tu adp mediante programa, usando para ello DAO ó ADO (mejor DAO. El
proveedor de Jet 3.51 no funcionaba muy fino).
Salu2
--
José Mª Fueyo
[MS MVP Access]
José Mª Fueyo
2006-04-15 13:23:49 UTC
Permalink
Nunca me acostaré sin saber una cosa más ;-)

Gracias por la info, paisano

Salu2
--
José Mª Fueyo
[MS MVP Access]
Ju@nK
2006-04-15 19:23:33 UTC
Permalink
:-D
--
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.

Salu2
***@nK [MVP Access] [DCE2003 ***] + VSTO [DCE2005 **]
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com

Nota: El contenido de este mensaje, así como el código
fuente que pueda ir 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 la sugerencia del presente mensaje.
Post by José Mª Fueyo
Nunca me acostaré sin saber una cosa más ;-)
Gracias por la info, paisano
Salu2
--
José Mª Fueyo
[MS MVP Access]
SoftJaén
2006-04-15 20:09:21 UTC
Permalink
Post by ***@nK
Eso no es totalmente cierto, mediante odbc puedes vincular
tablas de un mdb en un adp sin mayores problemas, ...
Hola, Juan:

Disculpa que me meta en la conversación, pero que yo sepa, el "peazo" cadena
que has indicado, no es una cadena de conexión ODBC; es una cadena OleDb
completísima y en toda regla, la cual se debe de especificar necesariamente
como argumento de la función «OPENDATASOURCE» del lenguaje T-SQL.

De todas formas, si Eduardo está trabajando con un proyecto Access, se
entiende que está trabajando con una base de datos SQL Server, por lo que en
lugar de "vincular" la tabla al archivo *.adp (cosa ésta que no se puede,
como bien ha dicho José María), digamos que podría "vincularla" (entre
comillas) directamente a la base de datos de SQL Server, creando una «vista»
mediante la ejecución de una consulta T-SQL «CREATE VIEW». En el siguiente
enlace lo explico más detalladamente:

Cómo vincular una tabla de Access a una base de datos de SQL Server
http://mvp-access.com/softjaen/bases/ado/sjspado018.htm

Lo mismo, también puede ser útil el siguiente enlace:

Cómo importar datos a SQL Server desde distintos orígenes de datos
http://mvp-access.com/softjaen/bases/ado/sjspado017.htm

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.
Ju@nK
2006-04-16 09:48:04 UTC
Permalink
Estoy de acuerdo, por eso digo ".. no es totalmente cierto ...", desde el
proyecto le das a vincular tabla y a través de odbc te crea la consulta que
publiqué, estoy seguro que tu información es completamente correcta y mas
precisa que la mía, gracias Enrique.
--
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.

Salu2
***@nK [MVP Access] [DCE2003 ***] + VSTO [DCE2005 **]
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com

Nota: El contenido de este mensaje, así como el código
fuente que pueda ir 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 la sugerencia del presente mensaje.
Post by SoftJaén
Post by ***@nK
Eso no es totalmente cierto, mediante odbc puedes vincular
tablas de un mdb en un adp sin mayores problemas, ...
Disculpa que me meta en la conversación, pero que yo sepa, el "peazo" cadena
que has indicado, no es una cadena de conexión ODBC; es una cadena OleDb
completísima y en toda regla, la cual se debe de especificar
necesariamente
como argumento de la función «OPENDATASOURCE» del lenguaje T-SQL.
De todas formas, si Eduardo está trabajando con un proyecto Access, se
entiende que está trabajando con una base de datos SQL Server, por lo que en
lugar de "vincular" la tabla al archivo *.adp (cosa ésta que no se puede,
como bien ha dicho José María), digamos que podría "vincularla" (entre
comillas) directamente a la base de datos de SQL Server, creando una «vista»
mediante la ejecución de una consulta T-SQL «CREATE VIEW». En el siguiente
Cómo vincular una tabla de Access a una base de datos de SQL Server
http://mvp-access.com/softjaen/bases/ado/sjspado018.htm
Cómo importar datos a SQL Server desde distintos orígenes de datos
http://mvp-access.com/softjaen/bases/ado/sjspado017.htm
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.
SoftJaén
2006-04-16 10:18:36 UTC
Permalink
Post by ***@nK
Estoy de acuerdo, por eso digo ".. no es totalmente cierto ...", desde el
proyecto le das a vincular tabla y a través de odbc te crea la consulta
que publiqué, ...
Lo que yo te quise decir, es que no se crea a través de ODBC. Según la
cadena de conexión que publicastes, la tabla se "vinculará" a través de OLE
DB. Para crearlo mediante ODBC, tendrías primero que crear un Origen de
Datos con Nombre, y seleccionarlo en el cuadro de diálogo del «Asistente
para vinculación de tablas», pero con la cadena de conexión que indicastes,
la Conectividad Abierta de Bases de Datos no tiene lugar alguno. :-)

También, se podría elegir un archivo *.odc (archivo de Conexión de Datos de
Microsoft Office) previamente creado, para "vincular" la tabla, el cual
también utiliza una conexión OLE DB para conectarse con el origen de datos
remoto. Las conexiones ODBC están cada vez más en desuso.

Pero que quede bien claro, que en los proyectos de Access, no se pueden
vincular tablas; las tablas, digamos que se vinculan mediante la creación de
un objeto «Vista» en la propia base de datos de Microsoft SQL Server, que al
igual que los restantes objetos existentes (tablas, vistas, procedimientos
almacenados), se verán en el proyecto *.adp de Access una vez abierto éste
último.
--
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.
Eduardo S.
2006-04-16 06:12:02 UTC
Permalink
Muchas Gracias a todos. Las ideas que me han compartido me parecen muy buena
aportación y las estoy valorando.

Les agradecería si me pudieran guiar en la valoración: ¿ Que ventajas podría
tener al usar el OPENDATASOURCE en lugar del ADO ?

Si he manejado ADO pero no me es familiar el OPENDATASOURCE
SoftJaén
2006-04-16 06:50:26 UTC
Permalink
Post by Eduardo S.
Les agradecería si me pudieran guiar en la valoración: ¿ Que ventajas
podría tener al usar el OPENDATASOURCE en lugar del ADO ?
Hola, Eduardo:

«OPENDATASOURCE» es una función del lenguaje Transact-SQL de Microsoft SQL
Server, que sirve para proporciona una información de conexión con un origen
de datos. Esa información de conexión, viene dada por una cadena Ole Db
donde se especifica la ruta de la base de datos, entre otros parámetros
opcionales.

Pero para usar la función «OPENDATASOURCE» y crear una «vista» en tu base de
datos de SQL Server, necesariamente deberás de utilizar la biblioteca de
ADO. Si no deseas crear la vista mediante programación, otra cosa que puedes
hacer, es abrir tu proyecto *.adp desde el propio Microsoft Access, y
seleccionar los objetos «Tablas». Con el botón secundario del ratón,
selecciona del menú contextual la opción «Vincular tablas ...», para que te
aparezca el «Asistente para vinculación de tablas».

Una vez aparecido el menú, tienes dos opciones para vincular una tabla.
Cualquiera de las dos que elijas, te abrirá el cuadro de diálogo
«Seleccionar archivos de origen de datos», donde deberás especificar «Bases
de datos Access (*.mdb)», en el cuadro combinado «Tipo de archivo».

Cuando hayas seleccionado la tabla que deseas vincular, y hayas cerrado el
Asistente, en los objetos de «Consultas» te aparecerá la tabla que hayas
indicado. Si deseas ver la cadena de conexión, abre la vista en modo diseño,
y dependiendo del vínculo que hayas creado con el Asistente, te aparecerá
una cadena de conexión a un servidor vinculado (la base de datos Access
elegida), o bien, una cadena de conexión parecida a la expuesta por ***@nk en
su primer mensaje, la cual utiliza la función «OPENDATASOURCE» para
conectarse al origen de datos.

Pero vuelvo a insistir, que no se trata de una tabla vinculada normalmente a
un archivo *.mdb, porque en los proyectos *.adp no se pueden vincular tablas
a dicho archivo. Lo que has creado con el Asistente, es un objeto «Vista»
que se ha incluido en tu base de datos de SQL Server. Cuando desees
consultar la vista, es cuando SQL Server lee la cadena de conexión
proporcionada para conectarse con el origen de datos indicado.

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.
Loading...