Access - Cambiar campo en formulario segun datos de subformulario.

 
Vista:
sin imagen de perfil

Cambiar campo en formulario segun datos de subformulario.

Publicado por Pablo BT (7 intervenciones) el 09/06/2022 21:42:26
Hola a todos.
Estoy creándome una base de datos con formularios y consultas para gestionar una serie de procesos dentro de la empresa, entre ellos ordendes de trabajo.
Tengo un formulario general con los datos principales de la orden de trabajo y necesito un subformulario, el cual debe contener registro de las tareas que asigno a la orden, con un campo del tipo Sí No para confirmar de que se han realizado.
Tengo la intención de poner un campo en el formulario, cuyo dato se debe almacenar en la tabla principal, que muestre o contenga un valor y éste cambie cuando los todos los registros asociados en el subformulario, tengan el campo Si No con el mismo valor Sí (valor -1 en la tabla)

Ando bastante pez con access, aunque he llegado a crearme bases de datos bastante funcionales.
Agradezco toda la ayuda posible.
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cambiar campo en formulario segun datos de subformulario.

Publicado por Anonimo (3316 intervenciones) el 10/06/2022 00:07:45
Un dato fácil de calcular no necesita ser guardado, se puede obtener cuando se necesite (para ello están las consultas)

Pero guardarlo o no es una decisión del programador.

Un campo calculado en el formulario con la suma de la cuenta de tareas + la suma de sus campos lógicos deberá dar cero.
Para obtenerlo se pueden utilizar funciones de dominio (DCount y DSum), la condición es común a ambas: la orden de trabajo.

Si una orden de trabajo tiene cuatro tareas y todas ellas han sido completadas

DCount( "*", "Tareas", "N_Orden = " & [La_Orden] ) = 4
DSum( "[Finalizada]", "Tareas", "N_Orden = " & [La_Orden] ) = -4
4 + (-4) = 0

Si se le titula 'Tareas pendientes' (y queda una de las cuatro) 4 + (-3) =1

También se puede mostrar el resultado como valor lógico (False = 0 / True <> 0)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Cambiar campo en formulario segun datos de subformulario.

Publicado por Pablo (7 intervenciones) el 12/06/2022 11:42:12
Gracias. Ha servido de bastante ayuda.

Aunque no he llegado a aplicar el código tal como indicas ,tras analizar el código, ví una forma sencilla de aplicarlo, que en esencia es exactamente lo que planteas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar campo en formulario segun datos de subformulario.

Publicado por Anonimo (3316 intervenciones) el 12/06/2022 14:30:09
Pues felicidades !!,
Nunca fue mi pretensión el imponer mi solución si no la mostrar un método razonado para que sirviese de inspiración, en definitiva: abrir una puerta mas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cambiar campo en formulario segun datos de subformulario.

Publicado por Pablo (7 intervenciones) el 12/06/2022 20:22:03
Igualmente, aunque lo pude solucionar, probaré aplicando el código que indicas.
Lo que hice, fue crear en el subformulario un cuadro con la expresión Contar([ID_REGISTRO]) por un lado = 4 registros y otro cuadro con la expresión Suma([CampoFinalizado]) =-4
En base a la información en el formulario principal creé un cuadro con la condición Silnm donde el según el resultado, muestre un texto. Silnm(Expresión =0, "Completado";"Pendiente")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar campo en formulario segun datos de subformulario.

Publicado por Anonimo (3316 intervenciones) el 12/06/2022 21:02:15
Por si es de utilidad para una próxima vez, en los formularios continuos en su pie (que se puede ocultar o minimizar si no se le da otro uso), se crea un cuadro de texto independiente y como origen de datos: = Cuenta(*)

Access calculara en tiempo real el numero de registros que contiene (no es necesario indicar un campo en concreto, cuenta registros por eso 'se conforma' con el ambiguo asterisco).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar