Formularios Interactivos

Otra Pregunta.
Gracias en lo que me puedas ayudar.
Resulta que tengo Cuatro tablas:
1.Labores
2.Áreas de trabajo
3.Operarios
4.Cantidad de trabajo por operario
La tabla operarios esta viculado con las dos anteriores de modo que un operario esta asociado a un área de trabajo y realiza varias labores.(El puede ser reubicado).
La idea es que necesito que un formulario para alimentar la "Cantidad de trabajo por operario" con los campos (Operario, Área, Labor y cantidad)Pero el debe validar si esta en el área y si realiza esta labor), algo así como con campos combinados que al momento de digitar el operario solo aparezcan las área y labores que tiene asociado este.
Cordial Saludo.

2 respuestas

Respuesta
1
Supongo que la Relación entre Tablas será algo así como Uno Tabla_Operarios a Varios Tabla_Areas de trabajo, Uno Tabla_Operarios a Varios Tabla_Labores, Uno Tabla_Operarios a Varios Tabla_Cantidad de trabajo por operario
Si esto es así, solo tendrías que hacer una consulta de selección con las cuatro Tablas, crear un auto-formulario basado en la consulta y desde este formulario asignar a cada Operario las tareas.
Una vez definido esto, puedes hacer otro formulario en donde el Operario, al seleccionar su nombre de un cuadro combinado obtenga en otro cuadro combinado el Área o Labor que tiene asignadas.
Te remito a un ejemplo ya documentado sobre como hacer que un usuario vaya seleccionando valores para introducir datos:
El siguiente ejemplo usa la base de datos Northwind.mdb de access 97 (también es válida Neptuno.mdb).
Nota previa a desarrollar el ejemplo: Observar la existencia del campo CategoryID en la tabla Products, este campo tiene que ser Numérico del tipo Entero Largo, Indexado - Con duplicados y se va a Relacionar con el campo de mismo nombre CategoryID de la tabla Categories, que será Autonumérico - Indexado Sin duplicados. Esta es la forma en que vamos a Relacionar las dos tablas, y se puede definir en la ventana Relaciones o en la misma Consulta qryProductsList.
El Tipo de relación es de Uno a varios, y va del campo CategoryID de la tabla Categories al campo CategoryID de la Tabla Products, se puede exigir también la Integridad referencial.
1. Crear una nueva consulta basada en la tabla Categories (en tu caso seria Operarios), y guardarla como qryCategoriesList:
Nombre de campo: CategoryID
Mostrar: Si
Nombre de campo: CategoryName
Mostrar: Si
Orden: Ascendente
2. Crear una nueva consulta basada en la tabla Products (en tu caso seria Labores...) y guardarla como qryProductsList:
Nombre de campo: ProductID
Mostrar: Si
Nombre de campo: ProductName
Mostrar: Si
Orden: Ascendente
Nombre de campo: CategoryID
Mostrar: Si
Orden: Ascendente
Criteros: IIF(IsNull([Forms]![frmSelector]![cboCategorySelect]);[CategoryID];[Forms]![frmSelector]![cboCategorySelect])
Nota: al usar la función IIf() and IsNull() en esta consulta se mostrarán todos los productos para el caso de que no se seleccione ninguna categoría.
4. Crear una macro nueva y guardarla como ResetProductSelect:
Macro Name Acción
--------------------------------------
ResetProductSelect NuevaConsulta
IrAControl
Argumentos de la Acción
---------------------------------
NuevaConsulta:
Nombre del control: cboProductSelect
IrAControl:
Nombre del control: cboProductSelect
5. Crear un formulario nuevo con los dos cuadros cuadros combinados y guardarlo
como frmSelector:
Formulario: frmSelector
-----------------------------------
Cuadro combinado:
Nombre: cboCategorySelect
Tipo de origen de la fila: Tabla/Consulta
Origen de la fila: qryCategoriesList
Número de columnas: 2
Ancho de columnas: 0 cm;1 cm
Columna dependiente: 1
Después de actualizar: ResetProductSelect
Cuadro combinado:
Nombre: cboProductSelect
Tipo de origen de la fila: Tabla/Consulta
Origen de la fila: qryProductsList
Número de columnas: 3
Ancho de columnas: 0 cm;1 cm; 0 cm
Columna dependiente: 1
6. Pasar a Vista Formulario. En el cuándo combinado cboCategorySelect, seleccionar una categoría y ver que el otro cuadro combinado cboProductSelect solo lista los productos para esa categoría.
7. En el cuadro combinado cboCategorySelect, seleccionar una categoría diferente y observar que el cuadro combinado cboProductSelect se ha actualizado y lista los productos apropiados para la nueva categoría.
Respuesta
1
Supongo que en tu tabla "Operarios", tienes un campo llamado "Area" que indica el área en la que trabaja.
Para tener lo que quieres, en tu formulario basado en la tabla "Cantidad de trabajo por operario" debes incluir un combo que tome como origen de datos la tabla "Operarios", pero mostrando, no el operario, sino el área en la que trabaja, filtrada de acuerdo al campo "Operario"
Es decir, en la propiedad "Origen de la fila" de ese combo, deberás escribir algo parecido a esto (lógicamente me invento algunos nombres que deberás cambiar por los que tu hayas usado)
"Select Area from Operarios where Operario = [Formularios]![Formulario cantidad de trabajo].[Formulario]!Operario"
Y para tenerlo siempre actualizado, en el evento AfterUpdate (Después de actualizar) del cuadro de texto donde digites el operario, debes dar la orden de refrescar el combo
MiCombo. Requery
Ademas, debes refrescarlo también cuando cambias de registro, o sea, en el evento "Al activar registro" del formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas