Averiguar el contenido de un campo de otra tabla.

Tengo un problema bastante complejo que no soy capaz de solucionar. Os explico un poco por encima de como es el tema:

Tengo un proyecto de base de datos a la que le llamo PREVENCION. Tengo 3 tablas relacionadas entre sí. La tabla principal es la de PERSONAL, y a mayores tengo otras dos, FORMACIONPERSONAL donde voy almacenando la formación que tienen y MAQPERSONAL donde almaceno la maquinaria que pueden usar.

Tengo un formulario para PERSONAL y he conseguido hacer un subformulario para introducir datos en FORMACIONPERSONAL. Eso no tuve ningún problema mirando los ejemplos que había por esta página. Pero el verdadero quebradero de cabeza es el siguiente:

Los campos de la tabla MAQPERSONAL son de tipo Sí/No. Lo que yo quería hacer es que para el registro que estoy visualizando en el formulario, a la hora de activar (por ejemplo RADIAL o PEMP), que busque en la tabla MAQPERSONAL por el DNI visualizado o utilizado en el formulario y me permita activar el uso de la maquinaria en función de la formación que tenga asociada ese DNI.

Por ejemplo, los que tienen la formación de "20 H Aparatos Elevadores" o "6 H Aparatos Elevadores" podrían utilizar una plataforma elevadora (campo PEMP) y quiero que me deje activarla, pero si no tiene esa formación que no me lo permita. Otro ejemplo sería si tiene "20 H Encofrados" o "6 H Encofrados", que me deje activar la casilla de SIECIR (sierra circular de mesa) y si no tiene formación pues que me lo diga en un msgbox, pero que no deje activar la maquinaria en función de la formación.

El problema que tengo es al hacerlo desde el formulario PERSONAL. Tengo 3 pestañas de control ficha, una donde pongo los datos personales del trabajador, otra ficha donde pongo la formación que tiene y la otra ficha, y la que me da los problemas es la ficha de MAQUINARIA, donde me gustaría colocar los controles de la tabla MAQPERSONAL y poder activarlos (o no activarlos) en función de la formación contenida en la tabla MAQPERSONAL, pero es que no sé cómo averiguar la formación que tiene cada trabajador.

Respuesta
2

Ricardo: Sin profundizar mucho, ceo que tendría que quitar como campo clave el DNI de maqpersonal y rehacer las relaciones de modo que sean de tipo 1 con Integridad Referencial.

Lo verás en el asistente de las relaciones.

Es posible que según tus necesidades sea "Todas las de Personal y solo..."

La relación de los subformularios con el Principal debe ser através del DNI. Saludos >> Jacinto

Bien ... eso lo puedo hacer. Además tienes razón porque debería ser una relación de 1 a 1.

Pero lo que me gustaría saber es cómo puedo hacer para que en el formulario de personal, cuando voy a "marcar" la maquinaria que me deje activarla si tienen determinada formación o por otro lado, si no tienen esa formación, que no me la deje activar y me salga un msgbox ... no sé si me explico.

Al activar la casilla de verificación, en después de actualizar, debería meter un código que me diga si para ese DNI con el que estoy trabajando, tiene formación de "20 H Encofrados" o "6 H Aparatos Elevadores" y eso lo tengo en otra tabla y no sé cómo decirle que busque esa información.

Ricardo: Según veo en tu tabla de Formacion ya tienes el DNI.

Sobre construyes un Formulario, para hacerlo servir como subFormulario del Principal.

Cuando lo tengas lo insertas en él y si lo haces con el asistente puedes elegir la vinculación.

En Campo primario >> DNI y en secundario DNI.

Luego en la medida que vayas adelantando registros, en cada uno te dará la información de ese DNI. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas