Bloqueo Access

Tengo un formulario (y 2 subformularios) del tipo uno a muchos a muchos (3 tablas), cuando elimino registros del tercer subformulario va bien, pero cuando los quiero eliminar del segundo o del primero se me queda "calculando" y no acaba nunca, ¿sabes por qué y qué puedo hacer?

5 Respuestas

Respuesta
1
Se te queda calculando, intentando actualizar los datos que acabas de variar. Para que funcione bien, debes de editar y actualizarlos datos en un solo formulario, no tenerlos repetidos en los distintos subformularios.
Los subformularios los debes de emplear para presentar datos o actualizar aquellos que solo figuren en ellos. No deben de figurar en más formularios abiertos simultáneamente o interconectados uno-a-muchos.
Respuesta
1
No me das demasiadas pistas. ¿Cómo están relacionadas esas tablas? ¿Qué versión de Access es? Creo que podrías estar teniendo un problema con las relaciones, más concretamente con la integridad referencial. Dame más pistas a ver.
Hola es muy posible lo que dices, porque no tengo nada claro como hacer las relaciones en access, te digo la estructura de las tablas:
Tabla1
Código
Titulo
Tabla2
codigo1 (relacion con codigo tabla1)
Código
Titulo
Tabla3
codigo1 (relacion con codigo1 tabla2)
codigo2 (relacion con codigo tabla2)
Titulo
Tabla4
codigo1 (relacion con codigo1 tabla3)
codigo2 (relacion con codigo2 tabla3)
codigo3 (relacion con codigo3 tabla3)
Código
Titulo
Abro la ventana de relaciones y "pinto" las que te he puesto aquí, de forma
Tabla1 --< Tabla2 --< Tabla3 --< Tabla4
No he puesto integridades referenciales porque me dice que no hay campos clave (o algo así).
Gracias
Exacto, necesitas crear campos clave para poder usar la integridad referencial. Te recomiendo que crees campos de tipo ID en todas las tablas. Por ejemplo, si tienes una tabla CLIENTES tendrás que tener un campo IDCLIENTE por ejemplo de tipo Autonumérico, para que se rellene sólo, y aplicarle la llavecita amarilla que tienes en la barra de herramientas, seleccionando el campo ID y pulsando en la llavecita. Luego asignas las relaciones en la ventana de relaciones. Es mejor que primero asignes el campo clave y luego crees las relaciones, pues es en las relaciones donde se asignan las reglas de integridad referencial.
¿Pero en relaciones de más de un campo cómo lo hago?
Por ejemplo entre mis tabla2 y tabla3, donde son 2 campos los que hacen la relación... ¿cómo puedo hacerlo?
Gracias
Tienes que seleccionar en la tabla los dos campos para hacerlos clave, tienes que hacerlos clave a los dos.
Hola, acabo de crear los campos clave y de nuevo las relaciones, he podido activar las integridades referenciales... pero aún así se me ha quedado "clavado" al eliminar de la tabla3...
¿Se te ocurre algo más?
¿Podría ser que los datos hayan sido introducidos cuando no había esta relación ni integridad?
Gracias
Si los datos estuvieran mal no te hubiera dejado crear las relaciones. Debe ser otra cosa. ¿Qué versión de access empleas?
La del office 2000
Recuerdo que existía cierto bug en las hojas de datos, referente al access 2000, al desplazarte en una hoja de datos al último registro. Se quedaba colgado al ir al anterior desde el último. Quizás sea lo que te está pasando a ti. ¿Tienes los service packs y parches correspondientes instalados? Si es un bug seguramente se solucionará con esto. Inténtalo haciendo el update en la página de microsoft si te faltara alguno, y por favor mantenme informado. Yo aún tengo algunas aplicaciones en 2000 y no están completamente actualizadas en algunos casos, aunque no se me ha llegado a producir este problema hasta el momento, pero me tiene intrigado...
Hola, no tengo nada instalado... ¿tú los tienes instalados?...
Algunos sí, pero no todos, no sé si alguno de los que tengo lo soluciona, seguramente sí. Yo te recomiendo que los instales todos. Para instalarlos no necesitas tener el original instalado ;-) basta que te conectes a la web de update de microsoft.
Respuesta
1
Lo siento pero sin verlo no tengo ni idea. Lo más que te puedo ofrecer es que me pases el archivo por email y le hecho un ojo.
Respuesta
1
Más bien tu tienes 3 tablas, y las tienes relacionadas. Esto es así o no entendí. Lo primero que debes de ver dentro de tu relación es cual es la tabla madre y cuales son las tablas hijo, lo que te esta pasando es qué de una tabal se debe de borrar en cascada de las de más, sin necesidad de estar borrando de las primarias o secundarias, creo que tu problema es de definición de la relación. Pues al no encontrar datos en las tablas relacionadas, se queda colgada la búsqueda, ¿tratando de encontrar el dato y como no hay un comando de? ¿No encontrado? Nunca termina de revisar las tablas. Recuerda que la tabla madre debe de llevar la primare key, y las tablas subsecuentes deben de legarse a la madre, pero si tu ligaste de la madre a la segunda y de la segunda a la tercera, debes de tener una relación en cascada de lo contrario tienes dos relaciones distintas. Analiza tus tablas y explícame más ampliamente para que pueda ayudarte.
Uno de los problemas era ese (la relación estaba hecha un desastre), el otro está como "bug" en microsoft y se soluciona con el service pack 1. Gracias
Respuesta
1
La verdad es que no he trabajado casi con subformularios, no obstante, por si no lo has probado, mira antes de borrar registres aplicar la opción que hay en herramientas, utilidades de la base de datos, en COMPACTAR, quizás si no lo has probado te sirva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas