Cómo vincular tablas de forma automática

Tengo un archivo BD1 con formularios, informes... Y BD2 con las tablas. BD1 tiene vinculadas las tablas BD2 que están protegidas, además, con contraseña.
Mi problema es que cuando cambio ambos archivos a otra ubicación, se pierden los vínculos con BD2 (tablas). Sé que hay mucho en la web sobre cómo vincular automáticamente (sin que me pregunte), pero siempre que meto el código me salen errores y no consigo hacer nada. ¿Cómo se puede hacer para que BD1 busque, por defecto, las tablas de BD2. Ambos archivos van siempre en la misma carpeta.

1 Respuesta

Respuesta
1

Pedro: Yo en un par de ocasiones he utilizado la metodología que Emilio Sancha expone en su Web y me ha ido bien.

Es el Ejemplo 229 del 04/15. saludos >> Jacinto

Muchas gracias Jacinto. El ejemplo que me mandas parece muy bueno. Voy a verlo y te comento. De nuevo, muchas gracias por tu respuesta y por lo rápida que ha sido.

Hola Jacinto. Me he descargado el ejemplo, pero por el motivo que sea no me funciona. Cuando selecciono todas las tablas y doy a revincular la ruta y el estado no se modifican. Si luego pulso el botón "Seleccionar todos", entonces me muestra bien la ruta, pero el estado sigue siendo "Desconectada". Si, tras esto, pulso "Comprobar vinculación" me muestra la ruta original de las tablas. No sé qué ocurre. Esto me ocurre con el archivo original de Emilio.

Pedro: Hagamos lo siguiente >> Echaré una ojeada a ver si recupero la información con la que yo lo había adapado y probado.

Si no la encuentro me vuelvo a bajar el Ejemplo de Emilio y lo miro.

Dejame unos días porque voy un poco saturado ahora mismo y te contesto, si antes no lo has resuelto. Saludos >> Jacinto

¡Gracias! 

Pedro: En el siguiente enlace te dejo el archivo comentado.

He hecho una adaptación del de Emilio Sancha, lo he probado y funciona.

http://www.mediafire.com/download/yiyx8ht8b86pdba/VinculaTablas.rar 

Si tienes dificultades me lo comentas. Saludos >> Jacinto

Hola Jacinto. Me salta el error "No se encontró el método o el dato miembro" en la siguiente línea:        

Me.TablasVinculadas = NumTablasVinculadas

Hola Jacinto. Ya lo he solucionado. Funciona perfectamente. No sabes lo que te agradezco la ayuda que me has dado. Voy a intentar ahora que la BBDD principal busque los datos en la misma carpeta en que está y que revincule siempre al principio. Muchas gracias de nuevo.

Pedro: Ahora que acabo de entrar en el Foro, veo que tenías un inconveniente que has resuelto, tu mismo. Estupendo.

Si crees que con ésto queda contestada la Pregunta, la valoras y la cierras

Hola Jacinto. Tu aplicación funciona a la perfección, salvo cuando el archivo de datos está protegido con contraseña. Precisamente ese es mi caso, por lo que tal y como está no me valdría. ¿Se puede solucionar eso?

La verdad es no lo he hecho nunca y tendría que dedicarle tiempo, pero a veces si hay alguna solución publicada merece la pena aprovecharla.

En la Web de Arkaitz Arteaga, y en esta dirección :

http://www.programadordepalo.com/vincular-tablas-en-access-con-visual-basic/ 

Hay un articulo con código incluido, que trata el tema. Mira a ver si se adapta a lo que necesitas, o puedes adaptarlo. Un saludo >> Jacinto

Hola de nuevo Javier. He encontrado la solución a abrir una base de datos con clave. Bastaría añadir en tu código lo siguiente:

Tabla.Connect = ";DATABASE=" & StrBDRemota & ";PWD=La_clave_de_BBDD"

Aprovecho para abusar de tu generosidad y hacerte una pregunta en relación a lo que hemos hablado. El archivo con los datos está en la misma carpeta que el archivo de BBDD. ¿Hay alguna forma rápida de conectar el archivo de datos utilizando Current.Path, evitando así que se abra la ventana de dialogo para que seleccione el archivo de datos?

Gracias por adelantado

Pedro: Estabas pensando en algún Javier y así lo has tecleado.

Bueno, lo que me mandas es perfecto: Gracias

En todo caso seria >> CurrentProject. Path.

Ahora no tengo acceso a mis ficheros porque estoy fuera. Lo miro >> Jacinto

Muchas gracias Jacinto. Efectivamente se me han cruzado los cables al escribir tu nombre. 

Pedro: Creo que en ese caso, si siempre está en una ubicación sería preferible la Metodología normal que utiliza Emili sancha en la mayoria de sus ejemplos.

Mirate en el enlace que tienes arriba lo siguiente:

Días atrás alguien preguntaba en el foro si se podía hacer una consulta de parámetros con un valor por defecto para el caso de que no hubiera respuesta a la pregunta del parámetro. (Ejemplo: 228) Access 2002 (XP) o superior 10/14

En el procedimiento >> Public Sub ReVinculaTablas()

Donde el cita:

'Construyo la ruta de la base de datos Neptuno en función de la versión de access
Select Case bytVersion
Case 9
strBDRemota = ArchivosDePrograma & "\Microsoft Office\Office\Samples\Neptuno.mdb"
Case Is > 9
strBDRemota = ArchivosDePrograma & "\Microsoft Office\Office" & bytVersion & "\Samples\Neptuno.mdb"
End Select

Sustituye todo éste código por:

strBDRemota = CurrentProject.Path & "\TuBaseDeDatos" incluyendo la extensión .mdb o .accdb

Así debe funcionar >> Un saludo >> Jacinto

Jacinto, no sabes lo que agradezco tu ayuda. Esto último es precisamente lo que llevo mucho tiempo buscando y, además, funciona!!!. Ha sido un privilegio contar con tu ayuda. De nuevo, muchas gracias!!!

De nada Pedro.

Al igual que otros, estoy en ésto por ayudar, si además lo consigo, pues muy contento.

Cuenta con mi ayuda. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas