** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Problema: Formulario dividido / Relaciones
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Problema: Formulario dividido / Relaciones

 Responder Responder
Autor
Mensaje
1993lrm Ver desplegable
Nuevo
Nuevo


Unido: 08/Mayo/2019
Localización: ALBACETE
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita 1993lrm Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Problema: Formulario dividido / Relaciones
    Enviado: 08/Mayo/2019 a las 10:31
Lo primero me gustaría presentarme en el foro. Llevo unos meses ya trabajando en un proyecto de Access para mi empresa y este lugar me ha sido de gran ayuda. Muchas gracias.

Lamentablemente ha llegado el momento en el que uno de mis problemas no lo he podido solucionar con la experiencia de usuarios previos, por lo que acudo ahora directamente a vuestra ayuda.  Espero ser lo más conciso posible, y así quitaros el menor tiempo posible.

Que quede claro que la situación que os voy a exponer ahora, por motivos de confidencialidad, es ficticia (es una versión maquillada de la real).

Resulta que mi empresa ensambla distintos modelos de coches, y cada modelo, por configuración del chasis, puede montar hasta 3 distintos tipos de motor.

Ha llegado mi turno de realizar una base de datos en la que relacione MODELOS DE COCHE con TIPOS DE MOTOR. Para ello, he creado dos tablas que se modificarán con un formulario dividido, en el cual puedes ver la lista de todos los modelos de coche y los tipos de motor que puede montar. Todo se puede ver en las capturas y archivo adjunto.

A mayores, he de indicar que cada tipo de motor viene identificado por un código, que en mi base de datos es un “Campo Calculado”.

Mi problema surge cuando quiero visualizar en el formulario dividido el “Código” (campo calculado). Con la ID del tipo de motor todo me va perfecto, pero es obvio porque todos los campos que se visualizan son de la tabla de “Modelos de coche”, pero el campo “Código” pertenece a la tabla “Tipos de motor”  y al intentar relacionarlo en la propiedad  “Datos” del formulario (es decir, con la consulta que alimenta el formulario). Me deja el formulario “En blanco”.

Imagino que mi problema recae en el tipo de relación entre tablas. Pero no consigo dar con la solución, e imagino que lo que me propongo realizar no es ninguna “quimera”.

¡Muchas gracias de antebrazo!




Editado por 1993lrm - 09/Mayo/2019 a las 08:15
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 996
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Mayo/2019 a las 18:38
Si tu base de datos real es similar a la ficticia, tengo una duda:

Si un coche sólo puede tener 1 motor, ¿por qué guardas 3 tipos de motor para cada coche? ¿Qué ocurrirá cuando alguien decida que se puede instalar un cuarto tipo de motor?

Yo lo plantearía así:

- 1 tabla con los modelos de coches (sin los motores).
- 1 tabla con los tipos de motores (sin los modelos de coches).
- 1 tabla con las posibles parejas coche-motor que se van a fabricar.

Y el formulario dividido estaría basado en la tercera tabla.
Arriba
1993lrm Ver desplegable
Nuevo
Nuevo


Unido: 08/Mayo/2019
Localización: ALBACETE
Estado: Sin conexión
Puntos: 3
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita 1993lrm Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Mayo/2019 a las 08:14
Hola pitxiku. Te comento. Lo que quiero con la base de datos es que un departamento de la empresa escriba los tres distintos tipos de motor para cada coche, y que luego, otro departamento, pueda ver esos tres tipos, y escoja.

El problema, es que hay varios campos "Foreign Key" en una tabla que hacen referencia a distintos "Primary Key" de otra, y como dices la solución más ortodoxa y canónica es crear una tabla intermedia para hacer una relación "muchos a muchos", pero eso no me permitía visualizar los resultados en distintas filas (y no columnas) de un formulario dividido.

La solución más optima para mi ha sido emplear para la entrada de datos del formulario una consulta con subconsultas y alias, para asociar luego esos "alias" a los distintos cuadros del formulario.

SELECT [01_Coches].Modelo, [01_Coches].ID_Coche,
(SELECT Codigo FROM 02_Tipo_de_Motor WHERE ID_Tipo_Motor = ID_Motor_1 ) AS Tipo_Motor_1,
(SELECT Codigo FROM 02_Tipo_de_Motor WHERE ID_Tipo_Motor = ID_Motor_2 ) AS Tipo_Motor_2,
(SELECT Codigo FROM 02_Tipo_de_Motor WHERE ID_Tipo_Motor = ID_Motor_3 ) AS Tipo_Motor_3
FROM 01_Coches;

No sé si es una chapuza... pero me sirve.

Espero que a alguien le pueda servir también.

¡Gracias!


Editado por 1993lrm - 09/Mayo/2019 a las 08:16
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable