¿Se puede compartir base de datos access 2007?

Tengo una pequeña duda.
He estado leyendo por foros y otras páginas acerca de la posibilidad de compartir bases de datos, pero en ninguna he visto nada acerca de hacerlo de forma simultanea, es decir, que si yo creo un registro desde un ordenador, el cual contiene una clave que no se puede repetir, al intentar crear otro desde otro ordenador me salte el típico error de claves porque está creado.
He probado a hacerlo tanto de forma directa en una red local como implementando la base de datos con Microsoft Groove 2007, y de ninguna de las maneras me soluciona ese problema.
¿Sabes de alguna forma para poder corregir esos errores o es imposible ya que access no es una aplicación cliente-servidor?
Respuesta
1
Ok, partamos del inicio.
Access es un gestor de base de datos y en cuanto a informes y formularios es sumamente bueno, pero ciertas cosas no puede hacer, por lo cual posee el VBA en cada form o informe que hagas para poder gestionar ciertas cosas de tu aplicación.
Si obviamente defines un id como clave principal, sin duplicación, no te permitirá crear otro idéntico y sí te dará el mensaje de clave duplicada, y lo mismo te hace cualquier base de datos. Si defines un id adicional a tu id principal (pudiendo tu tabla tener varias claves relacionadas a diferentes tablas. Ej: año, codplan, codinstitucion, etc) entonces para los NO principales debes generar un procedimiento de tal manera que 'Después de Actualizar' el campo en tu formulario de carga haga una búsqueda en una tabla determinada con DLookUp y te diga que ya existe en la misma.
Sin embargo, si tienes en diferentes equipos tu cliente (digamos tu mde) y una base 'servidor' (supongamos tu mdb), entonces debes establecer que cada cierto tiempo haga un update de los vínculos o programar una revinculación automática cada n minutos para que actualice los datos. O en su efecto, usar réplicaciones automáticas que al actualizar los campos inserten directamente en la bd y luego te actualice tu vinculo. Aunque llevaría tiempo programarlo, pero es posible.
Yo tuve esos inconvenientes en algún momento de mi vida, sin embargo migrando mi bd a mysql he solucionado varios inconvenientes que me daba Access.
Ya me suponía que con Access no iba a ser nada fácil, pero si utilizo la base de datos como cliente y servidor (mde y mdb) y actualizando de esa manera ¿tu crees que podría llegar a funcionar? No sé, lo veo ciertamente complicado, pero podría probar, aunque también me llama la atención lo de MySql que dices, pero a la hora de hacer formularios e informes no sabría como hacerlo... ¿Hay forma de utilizar informes y formularios de access utilizando tablas y consultas de MySql?
Muchas gracias por tu rápida respuesta
Lo de mdb y mde (o lo que suele llamarse back-end y front-end) funciona sin ningún problema, yo lo tenía en la oficina en uno de los varios sistemas que hice, pero ahora lo migré para hacer acceso web a datos con php y éste va mejor con mySQL. Lo ideal sería que diseñes tus tablas y lo pongas en un 'servidor' o en una máquina que utilices como servidor en un archivo mdb, y luego crees tu base de datos para tu aplicación en el que vas a tener tus formularios, informes, consultas, macros, módulos, etc. Vinculas las tablas del que está en el servidor y cuando ya esté todo ok tu sistema (tu programación y todo), generas tu mde, incluso pudiendo personalizarlo bastante con barras de menú, barras de herramientas, etc. También se puede generar un grupo de trabajo, pero de ello hablaremos cuando hayas de generar uno para tu sistema.
En cuanto a lo de MySQL... Sí, vinculando tus tablas MySQL por ODBC, pero aquí hay que tener en cuenta los índices únicos para cada registro porque sino Access no te guardaría ningún dato. Requiere de algún tipo de programación también en VBA para hacer las inserciones en formularios pues al introducir un dato y luego no grabarlo con un 'boton' lo mismo te estaría generando el registro aunque con el Undo se puede manejar pero no del todo.
Bien, entonces creo que me será mejor crear el mdb y mde, por ser más fácil, ya que tengo diseñada ya la base de datos y no me supone muchos cambios. Me bajé el MySQL y el ODBC para migrar las tablas pero igual se me puede llegar a complicar un poco. Muchas gracias por toda la información que me has dado, me has ayudado muchísimo.
Un saludo!

1 respuesta más de otro experto

Respuesta

Utilizar un servidor de base de datos: Si necesitas acceso simultáneo de varios usuarios a la base de datos sin conflictos, puedes migrar la base de datos de Access a un servidor de base de datos más robusto, como Microsoft SQL Server, MySQL o PostgreSQL. Estos sistemas de gestión de bases de datos (SGBD) están diseñados para soportar múltiples conexiones de clientes simultáneamente y gestionar conflictos de forma eficiente. scratch geometry dash
Implementar bloqueo de registros: Puedes implementar un sistema de bloqueo de registros en la base de datos de Access para evitar que varios usuarios modifiquen el mismo registro al mismo tiempo. Por ejemplo, puedes agregar un campo "Estado de bloqueo" en la tabla y actualizarlo cuando un usuario esté editando un registro. Sin embargo, esto puede requerir una implementación personalizada y puede no ser completamente efectivo para evitar conflictos.
Utilizar una aplicación de control de versiones: Si estás trabajando en un entorno de desarrollo de software, puedes considerar utilizar una aplicación de control de versiones como Git para gestionar las modificaciones de la base de datos de forma controlada y colaborativa entre varios usuarios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas