Actualizar registros en relación uno a uno

Tengo dos tablas con una relación uno a uno. Aunque sé que no es frecuente o poco útil, en mi caso en una tabla (con PK Autonumérico) tengo unos datos principales y en la otra (con PK Numérico) muchísimos datos que no quiero agregarlos a la primera tabla por su volumen y porque me interesa tenerlos aparte. Mi pregunta es, ¿cómo puedo actualizar o agregar registros en la segunda (por ejemplo mediante un formulario basado en una consulta de las dos tablas)?, me sale siempre el mensaje de Recordset no Actualizable, ya que lógicamente, por la propia característica de la relación uno a uno, no se puede marcar la casilla "Actualizar registros en cascada".

1 Respuesta

Respuesta
2

En las relaciones uno a uno sí que puedes marcar la casilla "actualizar registros en cascada" (y también la de "eliminar registros en cascada"). Obviamente, primeramente tienes que marcar la de "exigir integridad referencial".

Yo tengo una BD con una tabla (TSocios) relacionada uno a uno con otras dos tablas (TContactoSocios y TDatosPago), y en un formulario basado en una consulta sobre las tres tablas puedo añadir/modificar registros sin problema, lo que me lleva a pensar que tienes algo mal en la relación, pero sin verlo, no te puedo decir lo qué es...

¿Sería posible que me pasases una copia de tu BD, únicamente con las dos tablas y un par de registros de ejemplo?

Sí, tengo marcada "exigir integridad referencial" y "eliminar en cascada", pero cuando le marco el de "actualización en cascada" me sale el mensaje "Definición de campo Id no válido en la definición del índice o de la relación". Leí en un artículo (creo recordar que de la página oficial de Office) que en este tipo de relaciones no se puede actualizar en cascada, por eso te lo comenté antes. Por cierto, trabajo con Access 97 (aunque parezca mentira, es lo que hay en mi trabajo). Si llegara el caso, ¿cómo te envío una copia de la BD?

Ya he conseguido activar la "actualización de cascada", simplemente en vez de arrastrar la pk de la Tabla2 a la Tabla1, lo he hecho de la 1 a la 2, y ya me deja activarla, aunque no entiendo muy bien porqué. De todas formas, en el formulario que tengo creado a partir de la consulta de las dos tablas, cuando intento editar (actualizar) un campo me sale lo de "Este Recordset no se puede actualizar".

Para mandarme la copia de la BD, lo puedes hacer de dos formas:

1/ la subes a cualquier web de intercambio (como mega, filebig..) o a servicios como dropbox, onedrive... y me pones aquí el enlace de descarga

2/ La comprimes en zip o rar y me la mandas a: [email protected]

Los campos de las tablas han de tener estas características (al menos en la BD que yo tengo funcionando están así):

Tabla principal-> campo PK

Tipo datos: Autonumérico

Indexado: Sí (Sin duplicados)

Tabla secundaria-> campo PK

Tipo de datos: Numérico (entero largo)

Indexado: Sí (Sin duplicados)

¡Gracias! Solucionado. Tenía dos formularios con la misma estructura (la misma consulta de base) pero con distintos campos. En uno me funcionaba y en otro (idéntico salvo campos) no...misterio!! Lo he rehecho de nuevo y ya me funciona. Muchas gracias!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas