Problema de aplicación de access

Hola,
tengo una tabla con ciertos empleados
luego, en otra tabla tengo un cierto de numero de tareas
existen ciertas tareas en las que ciertos empelados son capaces de llevarla a cabo y otros no, pero cada empleado es capaz de realizar más de un tipo de tarea.
Ejemplo:
a hace 1 y 2
b hace 2 y 3
c hace 1 y 3
Como lo puedo hacer para que a cada una de esas tareas les pueda asignar las personas que son capaces de hacerlo
quiero consultar quienes pueden hacer la tarea a
etc
gracias

1 respuesta

Respuesta
1
Creo que lo mejor es tener 3 tablas:
Operarios (IdOperario (clave única), Nombre, Domicilio...)
Tareas (IdTarea (clave única), Descripción...)
OperariosTareas (IdOperario, IdTarea)
En un formulario independiente (es decir en Origen del Control no pones nada) creo un cuadro combinado para elegir el operario, que llamamos selOperario, en origen de la fila ponemos: Select IdOperario from Operarios order by IdOperario y en la acción Al hacer clic ---> Procedimiento de Evento ---> picas en el cuadrado de la derecha, el de los ... y pones Me. Refresh (para que al elegir el operario se actualice el formulario)
Después creas un cuadro de lista que llamaremos TareasAdjudicadas, en este cuadro de lista vamos a visualizar las tareas que tiene el operario seleccionado anteriormente y si picamos en alguna de ellas la quitaremos de ese operario (de esta forma en el mismo formulario puedes adjudicar o quitar tareas a un operario), para ello haremos:
En origen de la fila ponemos: Select IdTarea From OperariosTareas where IdOperario='" & Form!selOperario.Value & "' y en la acción Al hacer clic ---> Procedimiento de evento ---> El código siguiente:
Me.Refresh
DoCmd.RunSql "Delete IdOperario, IdTarea From OperariosTareas where IdOperario='" & Form!selOperario.Value & "' and IdTarea='" & Form!TareasAdjudicadas & "'"
De esta forma, al hacer clic sobre la tarea que queremos desadjudicar borramos el registro de la tabla OperariosTareas.
Por último para adjudicar tareas pondremos un cuadro combinado que llamamos selTarea, en origen de la fila ponemos: Select IdTarea From Tareas order by IdTarea
Y en la acción Al Hacer clic ---> Procedimiento de evento ---> el código:
Me. Refresh
DoCmd.RunSql "Insert Into OperariosTareas (IdOperario, IdTarea) Values ('" & Form!selOperario.Value & "', '" & Form!TareasAdjudicadas & "')"
Me cuentas.
Perdona, en el TareasAdjudicadas me falta el .value:
='" & Form!TareasAdjudicadas.Value & "'

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas