Hola, Tengo una aplicación access con dos mdb: uno con los datos (Tablas y consultas) y otro con los formularios. Este último tiene vinculadas las tablas y consultas necesarias del primer mdb. La idea es tener el aplicación.mdb en cada uno de los puestos y el datos.mdb en el servidor. ¿Cómo puedo indicar la ruta del servidor donde está datos.mdb a la hora de conectarme a la BD haciendo un Open).
Muchas gracias.
Deberás crear un formulario basado en una tabla en la que crearas un campo llamado 'Path'. El formulario en sus propiedades 'ciclo' será 'registro activo', para que no se pueda incluir más de uno en la tabla. Crea un botón en el formulario y 'al hacer clic' añade el siguiente módulo: Dim i As Date With Application.FileSearch .LookIn = Me![Path] & "\CARPETA" .MatchTextExactly = True .FileName = "Base(Dat)" If .Execute > 0 Then For i = 1 To .FoundFiles.Count Next i DoCmd. DeleteObject acTable, "A" DoCmd. TransferDatabase acLink, "Microsoft Access", _ Me![Path] & "\CARPETA\Base(Dat).mdb", acTable, "A", "A", False (Con una ventana tan chica para escribir es una lata) Donde 'Path' es la ruta que incluiremos en dicho campo dentro del formulario y que se guardará en la tabla que creamos. Recordar al usuario con un cuadro de texto o etiqueta que si la ruta está en un servidor de red, deberá comenzar por \\ y el nombre del equipo en la red. Donde CARPETA, será la carpeta que dimos en el proceso de instalación o setup. Donde Base(Dat) es el nombre de la base de datos de donde vincularemos las tablas. Donde 'A' es el nombre de la tabla. Primero eliminaremos la existente y luego vincularemos la nueva con el mismo o nombre (o distinto si lo deseamos). En este caso con el mismo Lo primero que ejecuta el modulo es un chequeo en la ruta dada, para ver si existe el archivo. Este modulo puede ser depurado mucho más, dependiendo de tus necesidades, esto es, si por ejemplo tienes las bases separadas por años deberás crear un bucle que localice el año de la base. La cosa se complica. Pero siempre existe una solución. Lo siguiente que hace es eliminar la tabla vinculada 'A' (repetiremos esta operación por cada tabla que dependa de la base externa y que tengamos vinculada) y luego vincula la nueva tabla desde la ruta establecida en el campo 'Path' del formulario. NOTA: Siempre debes haber establecido una ruta de instalación en una carpeta determinada, bien en C:\ directamente o bien en Archivos de programa, ya que si no el módulo tendrá que chequear todo el disco duro en busca de la base, lo cual es lento sobre todo con los actuales discos duros. (Demasiado volumen). Espero que te haya quedado bastante claro. No olvides puntuar. ¿OK?