Crear Menú de Conexión en Access

Tengo una base de datos en Access destinada a múltiples proyectos.

Debido a motivos de seguridad los proyectos se mantienen separados. Por ese motivo hemos establecido varias copias independientes de la base de datos (una por proyecto)

De este modo tenemos lo siguiente

C:\Base de Datos 1

C:\Base de Datos 2

...

El caso es que necesitamos crear un menú mediante un formulario que nos permita cambiar las vinculaciones de la base de datos según sea necesario.

El menú contiene un botón conectar (que es donde meteríamos el programa) y 2 campos

Uno para la unidad de conexión (C, D, E...) y otra con el nombre de la carpeta de la base de datos (Base de Datos 1, Base de Datos 2...)

De tal manera que al pulsar el botón conectar, las rutas de las diferentes tablas enlazadas se modificasen a la ruta de la base de datos a la que se conecta.

Hay un problema añadido y es que, la base de datos, debido a que almacena algunas imágenes de gran peso, se encuentra dividida en módulos.

De este modo, algunas de las tablas se encuentran en C:\Base de Datos 1\Imágenes.mdb y otras se encuentran en C:\Base de Datos 1\Datos Generales.mdb

Por lo que necesitaría que la actualización de las tablas vinculadas tuviera en cuenta eso.

1 respuesta

Respuesta
1

No sé si te servirá (yo creo que sí), pero en la web de Emilio Sancha (http://www.mvp-access.es/emilio/Access/Descargas.asp), el ejemplo nº 229 es un "administrador de tablas vinculadas" y parece justo lo que necesitas.

Además, si descargas casi cualquier otro ejemplo, contienen otro sistema de revinculación de tablas (que según dice el propio Emilio, no es muy diferente del ejemplo anterior).

Por otro lado comentarte que no es necesario que las imágenes las guardes dentro de la BD (lo que te evitaría tener que usar archivos diferentes). Si las imágenes las guardas en una carpeta concreta, solo necesitas almacenar el nombre de la imagen (o la ruta completa) y en tus formularios/informes las cargas al visualizar el registro. No es nada difícil hacerlo, aquí tienes explicadas formas de hacerlo: http://neckkito.xyz/nck/?searchword=Im%C3%A1genes&searchphrase=any&limit=20&ordering=newest&view=search&option=com_search

Hola.

Muchas gracias por la ayuda.

Te comento, respecto a lo de las imágenes, contienen información privada que no puede quedar fuera de la BDD

Respecto al ejemplo que me has enviado, me ha servido parcialmente pero como soy pez en VBA me he quedado un poco colgado.

He preparado un menú de actualización donde el usuario elige el nombre del proyecto y la unidad de conexión.

Tras esto he generado una consulta que contiene lo siguiente.

ID - Nombre de la Tabla - Ruta de Conexión

Ahora me falta la macro VBA (no tan compleja como la del ejemplo), que lo único que tiene que hacer es leer cada una de las líneas de la consulta y asociar cada una de las tablas con su respectiva ruta.

Y ahí me encuentro estancado.

Gracias de antemano

Perdona, pero se me acabaron las vacaciones y hoy fui muy justo de tiempo como para prepararte un ejemplo completo.

A ver si entre mañana y pasado saco algo de tiempo y te digo algo concreto.

Muchísimas gracias por tu ayuda.

Quedo a la espera entonces :)

Yo también soy gallego)

Por fin saqué un ratito y te he preparado un ejemplo de lo más simple que pude, a ver si así te sirve para lo que quieres: http://www.filebig.net/files/8ZFZbDQFCn

En el archivo comprimido va una BD con dos tablas vinculadas (TDatos y TImagenes) y dos carpetas ("Base Datos 1", que yo coloqué en "C:" y "Base Datos 2", que yo coloqué en "D:") con 2 archivos Access cada una ("Datos Generales " e "Imagenes"), con exactamente las mismas tablas y con datos distintos para que se vea que efectivamente se cambia la vinculación.

En principio las tablas están vinculadas a las BDs de la carpeta "C:\Base Datos 1"

Al abrir el formulario, pulsas el primer botón y a través de la función que está en el módulo "mdlRevincula" (solo lo tendrías que copiar a tu BD y registrar las dos referencias que se indican al principio), se te abrirá una ventana para seleccionar la carpeta que tiene las BDs, y copia la ruta al cuadro de texto.

Al pulsar el botón de revincular, se "obra la magia" y se cambia la ruta de las tablas vinculadas a las de la nueva ruta.

Para que el invento funcione, las BDs de las diferentes carpetas se tienen que llamar igual, lo mismo que las tablas.

Si en tu caso las bases de datos están protegidas por contraseña, habría que modificar los parámetros de la función Replace(), porque en la cadena también se incluye la contraseña y ajustar los valores para sacar y reemplazar la ruta.

Muchísimas gracias.

Me ha funcionado genial. Es justo lo que necesitaba y ya me estaba volviendo loco.

De verdad, muchas gracias de nuevo. Un abrazo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas