Relaciones Varios a Varios- URGENTE!

Tengo una base de datos con dos tablas principales, una de personas y otra de centros de trabajo. La tabla Personas tiene, entre otros, el campo PersonaID y CentroID; y la tabla Centros tiene el campo Centro ID que establece la relación. El problema es que tengo personas que trabajan en más de un centro, y centros en los que trabaja más de una persona.
1.- ¿Cómo puedo hacer una consulta en la que encuentre una persona y todos los centros en los que trabaja, y otra consulta en la que encuentre un centro y todas las personas que trabajan en él?
He intentado hacer una tabla intermedia con CentroID y PersonaID pero hay que rellenarla a mano cada vez que añadía una persona o un centro.
2.- Además mi jefe quiere que añada un campo de actualización que se rellene automáticamente con la fecha del día cada vez que se grabe un registro ¿qué expresión puedo usar?. Sólo he conseguido conservar la fecha de creación del registro pero no la de modificación
Respuesta
1
Solución 1: Debes de crear una consulta de selección en la que la relación no es uno a uno sino 1 a muchos. Si le das doble click sobre la linea de la relación te aparece donde puedes cambiar el tipo de realcion y seria algo así: Ver todos los registros de Centros y solo aquellos de Personas donde ambos campos sean iguales.
2. Debes de crear un campo en la tabla donde quieras que vaya el campo de actualización y en las propiedades en la tabla le pones en valor por defualt fecha() o today().
Este campo lo agregas al form y en evento antes de Actualizar, pones en el código lo siguiente, suponiendo que el campo se llama fechActualizac:
me.fechActualizac = now()
Y eso es todo
La expresión para el dato de actualización me da un mensaje de error, de que no encuentra la macro 'me.'
Con respecto a la respuesta de relaciones: Esa posibilidad ya la he tenido en cuenta, y consigo una consulta en la que me dice cuantas personas trabajan en un mismo centro, es decir, mismos CentroID para varios PersonaID.
El problema que no consigo resolver es la versión contraria: Un PersonaID para varios CentrosID. Lo intentado añadiendo el campo PersonaID a la tabla Centros, de modo que la tabla Centros tendría los campos CentroID (clave principal autonum.) Y PersonaID (numérico) y la tabla Personas tendría los campos PersonaID (clave principal autonum) y Centro ID (numérico), pero tampoco funciona.
Otras dos preguntas:
Después de añadir algunos registros nuevos a la tabla persona, he observado que no los recupera si no tienen asociado un código de centro. Sin embargo, tengo personas que no tienen centro de trabajo, ¿cómo puedo hacerlo?
Otra de las soluciones que he intentado es la de hacer un formulario para Centro con subformulario para personas. El problema es que cuando una persona cambia de centro de trabajo no puedo añadirlo al nuevo centro sin crear un nuevo registro en la tabla personas, incluso si establezco un cuadro combinado que elige de la lista de personas. Cómo puedo hacer una lista para elegir los centros y las personas ya existentes, ¿sin crear registros duplicados?.
Perdona que sea tan pesada, como verás tengo un millón de dudas. Una vez más muchísimas gracias
Belén
Veo que todo se debe a que no tienes claro la relación de tablas. Te voy a poner un ejemplo para que entiendas y con eso puedes solucionar tu problema:
Tabla Mascotas
Campos: Raza texto
Edad: numérico
ID: autonumérico y esta es la primary key
NIT: numérico y es la relación con la tabla Propietarios
Tabla: Propietarios
Campos: nombre texto
Ciudad: texto
NIT: numerico y es la primary key
Asi, cada vez que se va a ingresar una Mascota, se debe ingresar un propietario y a su vez el propietario debe de existir.
En caso de que haya una mascota que no tenga propietario entonces la consulta debe quedar no con la relación de uno a uno, es decir, muestre todas las mascotas que tienen un propietario, sino muéstreme todas las mascotas sin importar si tienen o no propietario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas