Subformulario con dos campos ligados
Publicado: Lun Sep 28, 2009 7:51 pm
El ejemplo es el siguiente:
tablas:
- empresa [ id_empresa (PK), nombre ]
- local [ id_local (PK), nombre, id_empresa (FK) ]
- empleado [id_empleado (PK), nombre, id_empresa (FK) ]
- local_empleado [ id_empleado (PK, FK) , id_local (PK, FK) ]
relaciones:
1 empresa - N empleados
1 empresa - N locales
N locales - N empleados
Para introducir los datos tanto de locales como empleados uso un subformulario y enlazo el campo id_empresa al formulario principal de la tabla de empresas (hasta aquí todo ok), el problem surge cuando quiero asociar un empleado a varios locales.
Para ello uso un subformulario del subformulario de empleados para que muestre los locales a los que está asociado con la tabla local_empleado, despues añado una tabla de control y añado sobre ella una columna que es un listado (puesto que quiero poder seleccionar el local).
El campo de datos es id_local y en el listado escribo el siguiente SQL: select nombre, id_local from local. Así puedo introducir datos de la relacion empleado-local. El problema es que en el listado me aparecen TODOS los locales (lo cual es lógico)
¿Cómo hago que sólamente aparezcan los locales de la empresa del empleado?
¿Hay alguna forma de acceder al valor del campo id_empresa seleccionado y asignarlo a una variable o parámetro...?
me gustaría que el SQL fuera: select nombre, id_local from local WHERE LOCAL.id_empresa = :id_de_empresa_seleccionada
pero no sé como guardar en :id_de_empresa_seleccionada el id de la empresa del formulario principal.
Espero que se entienda mi pregunta, he buscado mucho y no he encontrado nada.... también soy bastante novato con BDs de usuario..
tablas:
- empresa [ id_empresa (PK), nombre ]
- local [ id_local (PK), nombre, id_empresa (FK) ]
- empleado [id_empleado (PK), nombre, id_empresa (FK) ]
- local_empleado [ id_empleado (PK, FK) , id_local (PK, FK) ]
relaciones:
1 empresa - N empleados
1 empresa - N locales
N locales - N empleados
Para introducir los datos tanto de locales como empleados uso un subformulario y enlazo el campo id_empresa al formulario principal de la tabla de empresas (hasta aquí todo ok), el problem surge cuando quiero asociar un empleado a varios locales.
Para ello uso un subformulario del subformulario de empleados para que muestre los locales a los que está asociado con la tabla local_empleado, despues añado una tabla de control y añado sobre ella una columna que es un listado (puesto que quiero poder seleccionar el local).
El campo de datos es id_local y en el listado escribo el siguiente SQL: select nombre, id_local from local. Así puedo introducir datos de la relacion empleado-local. El problema es que en el listado me aparecen TODOS los locales (lo cual es lógico)
¿Cómo hago que sólamente aparezcan los locales de la empresa del empleado?
¿Hay alguna forma de acceder al valor del campo id_empresa seleccionado y asignarlo a una variable o parámetro...?
me gustaría que el SQL fuera: select nombre, id_local from local WHERE LOCAL.id_empresa = :id_de_empresa_seleccionada
pero no sé como guardar en :id_de_empresa_seleccionada el id de la empresa del formulario principal.
Espero que se entienda mi pregunta, he buscado mucho y no he encontrado nada.... también soy bastante novato con BDs de usuario..