
Dividir una aplicación en Access es muy importante si el uso va a ser multiusuario.
Lo que hacemos en realidad es crear dos archivos, uno en el que tenemos las tablas únicamente (es decir los datos puros) a esta le vamos a llamar back-end y otra en la que tenemos toda la lógica de la aplicación, o lo que es lo mismo la forma de interpretar los datos. Por tanto en esta otra a la que vamos a llamar front-end, tenemos las consultas, los formularios, las macros, los informes y los módulos.
El front-end es la parte del software que interactúa con el o los usuarios y el back-end es la parte que procesa la entrada desde el front-end.
El back-end debe ponerse en un servidor (o en un PC que haga esa función) y el front-end en todos los equipos desde los que queramos acceder a los datos.
Lógicamente el acceso es muchísimo más eficiente que si intentaramos abrir el archivo entero desde una ubicación de red, dado que solo van a viajar los datos puros y duros y no toda la aplicación.
Ahora a todos los front-end tenemos que vincularle las tablas que tenemos en el servidor. Tenemos que decirle donde está la ruta a nuestro back-end.
Para ello Access tiene un asistente que se llama Administrador de tablas vinculadas que facilita la tarea....pero a lo mejor queremos automatizar esta tarea, por otro lado a veces imprescindible si utilizamos Runtime.
Cuando utililizamos las extensiones para desarrollador de access 2007, creamos un fichero exe que empaqueta nuestra aplicación y nos crea un archivo con una extensión especial llamada ACCDR que permite que funcione sin tener Access instalado.
Un archivo ACCDR no puede abrirse desde la opción de menú Abrir de Access, sólo podemos hacerlo con un acceso directo o con un doble-clic sobre el icono en el explorador de Windows. Una vez abierto, no se muestra el panel de control ni ninguna de las opciones de herramientas de diseño o de configuración de Access, ni tenemos la opción de llegar a ellas. Tampoco se muestra nada de la cinta predeterminada de opciones. En definitiva, en un ACCDR el usuario no puede hacer nada que no sea usar nuestra propia aplicación y lo que en ella hayamos diseñado previamente, por tanto no puede abrir el administrador de Tablas Vinculadas y no tienes la posibilidad de Vincular las tablas con el servidor. A no ser... Que crees tu mismo un sistema para hacerlo.
Ese es el propósito de este ejemplo, en el fichero Rar que adjunto, encontrarás 2 archivos MDB, uno llamado vincular.mdb que sería nuestro front-end y otro llamado servidor.mdb que sería nuestro back-end.
Cuando intentes abrir el fichero vincular.mdb te pedirá que le digas donde está el fichero servidor.mdb, se lo indiques y se realizará la vinculación
El enlace al ejemplo aquí
Me ha venido genial el ejemplo.
ResponderEliminarMuchas gracias!
Pep
Hola:
ResponderEliminartengo una base de datos en excel,
la vincule a acces por medio de una tabla y a esta le vincule un formulario de access, deseo colocar la base en un servidor y permitir el uso de los formularios , las consultas e informes a tres personas diferentes a travez del servidor en una carpeta compartida , que tengo que hacer paso a paso, pues no se mucho apenas estoy iniciandome en access, te agradezco mucho.
Hola Juan gracias por el ejemplo esta genial, se lo intente adaptar a mi sistema pero cuando quiero activar la referencia Microsof DAO 3.6 Objet Library me sale un error dice. El nombre entra en conflicto con un modulo ,proyecto o biblioteca de objetos existente.
ResponderEliminarya he buscado en todos los modulos , etc. pero no encuentro conque pueda estar haciendo conflicto, alguna otra forma de activarlo.
saludos.
Hola Victor.
ResponderEliminarProbablemente el problema se deba al nombre de algún módulo.
Como los nombres de los módulos no tienen importancia en tu programación, prueba a cambiar el que te parezca sospechoso
Un saludo
Hola juan gracias por la respuesta , no funciono ya cambie los nombres de todos los modulos y ni asi agarro.
ResponderEliminarlo seguire checando muchas gracias.
Hola,
ResponderEliminarNO manejo mucho el access y necesito vincular un formulario ya hecho a una tabla nueva, como puedo hacerlo?
Juan me gusto mucho este ejemplo he aprendido varias cosas de ti.. quisiera consultarte si se puede modificar esta aplicacion para que al no encontrar la ruta de vinculacion la vincule a la carpeta donde esta la db.
ResponderEliminarTe explico hice una aplicacion que la quiero usar en un pendrive y como es logico la letra de la unidad cambia de maquina en maquina... la idea es que siempre que no la encuentre busque en el CurrentProject.Path & "\db\" y que me tome el mismo nombre de la db que se vincula (esto es por que mi aplicacion vincula a 2 db sistemas.accdb y reuniones.accdb)
SE PUEDE HACER ESTO??
Buena, he tenido siempre ese problema de la vinculación y este ejemplo me ha dado la solución precisa. se agradece. Desde Chile Miguel Sandoval.
ResponderEliminarEs lo ue estaba buscando hace mucho, se agradece el Access. desde Chile Miguel Ángel Sandoval.
ResponderEliminarholaaaaa buen diiaaa
ResponderEliminarme urgee saber comooo vincular un formularioo a una tablaaa, al ioo poner informacion en el formulariooo la tabla tambien se vaiaa aliiimentandoo peroo no recuerdo comooo se haciaa =S mil graciias por su ayudaaa
Anny!
hOLA JUAN BUENO SOY NUEVO EN ESTO Y SI PUDIERAS EXPLIACAR DE UNA FORMA MAS SENCILLA O CON IMAGENES EO DEL BACK END Y FRONT END Y EL RUTIME TE LO AGRADECERIA MUCHO...
ResponderEliminarHola Juan! una pregunta Juan cuando llego a la segunda pantalla de empaquetar no me deja pasar de allí y hay algunas cosas ke no logro entender. Me podrías ayudar con esto?
ResponderEliminarhttp://www.flickr.com/photos/ju4n1t4/4620021946/
hola Juan, tambien tengo una inconveniente quise adactar esta aplicacion a mi base de datos que ya previamente la dividi pero me da error cuando escoja la base de datos mia. no se si es porque la mia esta en 2007. no se. bueno si me puedes ayudar este es mi email: jeofer1@gmail.com.
ResponderEliminarMuchas Gracias, dejame decirte que es muy importante que gente como tu comparta informacion para personas como yo u otros que estamos con mucha necesidad de aprender y mas a un cuando somos autodidactas.
ResponderEliminarMuchas Gracias
Juan, tengo dos bases de datos como tu dices, una con las tablas en red y otra en local en cada ordenador del usuario. Pero a veces, según lo que pida, según qué formulario abra, tarda hasta a veces un minuto en abrirse. ¿Cómo puedo mejorar el rendimiento?
ResponderEliminarMuchas gracias
Juan, he encontrado esto en internet, pero no entiendo eso que dice de los procedimientos almacenados. ¿Puedes ayudarme?
ResponderEliminar"El problema de rendimiento que tienes es normal, al vincular las tablas,
Access se trae todos los datos a local para trabajar con ellas como si fueran
tablas propias. Por eso, a medida que aumenta el tamaño, el rendimiento cae
en picado.
Te recomiendo no vincular nada más que las tablas pequeñas, y el resto de
las operaciones (incluyendo los SELECT) hacerlas a través de procedimientos
almacenados"
Qué tal Juan Cots, muy buenos ejemplos en tu blog. Felicidades.
ResponderEliminarEspecíficamente creo que tú me vas a entender perfectamente.
Tengo una aplicación que presciamente se ejecuta en modo runtime. El problema es que pensé que era seguro (para que el cliente final no modifique el front-end) pero si al archivo le cambias la extensión manualmente desde el explorador de .ACCDR a .ACCDE te lo permite. Ya haciendo esto, puedes modificar lo que quieras (aún bloqueando la tecla shift y estando la base en ACCDE, hay programas que desbloquean todo esto).
Tienes idea de cómo evitar esto. De hecho en todoexpertos.com realizé una pregunta similar. Aunque sé que tú la podrías responder con más fundamentos.
Gracias.
Amigo gracias. necesitaba este ejemplo desde hace tiempo. te saluda isidro rodriguez desde venezuela
ResponderEliminarYo trabajo con una aplicacion asi pero resulta de que se pone muy lenta que hago para mejorar el rendimiento del front-end?
ResponderEliminaro trabajo con una aplicacion asi pero resulta de que se pone muy lenta que hago para mejorar el rendimiento del front-end?
ResponderEliminarEs justo lo que necesito, quisiera saber como vincular correctamente las tablas en un runtime con access 2010 y hacerlo sin la intervención del usuario usando una ruta relativa (por ejemplo, creando una carpeta llamada "MI APLICACIÓN", que a su vez contenga, en la raíz de dicha carpeta, tanto la aplicación front end accdr como una carpeta llamada BACK_END que contuviera el back end accdb). Supongo que hay alguna forma de asignar la ruta del archivo actual a una variable pública que después pueda pasar a una macro VBA para que use dicha ruta para vincular correctamente las tablas. De modo que la variable de ruta contuviera RUTA ACTUAL (LA DEL FRONT END)/BACK_END/mibackend.accdb.
ResponderEliminarPor ello me sería de enorme ayuda poder ver el ejemplo, pero parece que el enlace está roto y no puedo descargarlo. ¿Podría alguien repostearlo? Gracias
Hola Juan.
ResponderEliminarMolesto tu atención preguntandote si es posible obtener las tablas de un ejecutable en access 2010?
Cuál es el procedimiento?.
Gracias de antemano
Buenos dias, teng una pregunta:
ResponderEliminarYo poseo mi Base de Datos en Acces 2010 y tengo un campo que se llama facturas y deseo agregarle el campo de vincular una factura en pdf, esto ya lo realice con exito pero ahora el problema es que lo deseo que sea multiusuario pero cuando un usaurio ya no lo esta usando no me deja hacer qu el otro usuario agrege las facturas? como debo hacer para que mas de una persona pueda vincular las facturas o no se puede hacer eso.. Gracias por su colaboración
Buen dia Juan.
ResponderEliminarEl "enlace al ejemplo aqui" del artículo "Vincular tablas" no me funciona. Podrias indicarme que hacer?
El enlace no funciona. Podrias mirar que passa?
ResponderEliminarJusto ahora que encuentro la respuesta a mi pregunta y no funciona el enlace.
ResponderEliminarMe pasó lo mismo, y me encontré el ejemplo poniendo en el buscador vincular.rar
Eliminarte paso el link para descargar el archivo en 4shared
http://www.4shared.com/get/-0FtX28P/vincular.html
En 4shared ya no está disponible ¿alguien que lo tenga lo puede subir a otro sitio?.
EliminarGracias.
Un saludo.
el link esta roto por favor si lo podria solucionar o enviar a mi correo el ejemplo agradezco la colaboracion
ResponderEliminarastu11@hotmail.com
La aplicacion parece ser muy buena, pero el link está roto asi como todos los otros link de este sitio y segun veo no hay administrador porq desde el 2012 que reportaron esto y no lo han solucionado, de igual forma gracia por las ideas...
ResponderEliminarLa aplicacion parece ser muy buena, pero el link está roto asi como todos los otros link de este sitio y segun veo no hay administrador porq desde el 2012 que reportaron esto y no lo han solucionado, de igual forma gracia por las ideas...
ResponderEliminarHola Juan, en mi caso uso office 2003. El back end está en una PC a la cual accedo en forma remota por una vpn. El tema es que al vincular las tablas desde los front end, las consultas se hacen eternas... tardan alrededor de 2 minutos en abrir. A que se puede deber esto?
ResponderEliminar