Ayuda con cálculos

Tengo que hacer lo siguiente y tengo muchos problemas para implementarlo.
Tengo un formulario vinculado a una tabla con un subformulario vinculadoa otra tabla. Ambas están relacionadas mediante dos campos (Código y fecha).
El problema es que en el subformulario he de introducir unos datos (Tipo-(Valor booleano), operación, modelo) a partir de los cuales he de calcular uno de los campos del subformulario llamado TIEMPO.
Tengo otra tabla que recoge las distintas operaciones a aplicar sobre un modelo. Es un formulario (vinculado a la tabla modelo) con un subformulario (vinculado a la tabla desarrollo de modelo). Así cada modelo tendrá distintas operaciones y en cada operación tendrá un tiempo de preparación y otro de fabricación(introducidos por el usuario)
Lo que quiero es que cuando en el subformulario del formulario principal introduzca tipo=TRUE, modelo=p1, operacion =10, almacene en el campo TIEMPO el tiempo de preparacion;
Si por el conrario se introduce tipo=FALSE, modelo=p1, operacion=10 almacene en el campo TIEMPO el tiempo de fabricacion.
Además para redondear la cosa el subformulario debería de ser continuo, con lo que no veo como implementarlo. (Pensé hacer una consulta con un subformulario dentro del subformulario, pero creo que eso es poco funcional)
A ver si pudieras ayudarme y darme un ejemplo de como hacerlo este cálculo en un formulario de distintas tablas sin que estén abiertos más formularios.
Respuesta
1
Para aplicar la información del tiempo en el subformulario debes introducir algo de código VBA en el evento después de actualizar del formulario principal (Form_AfterUpdate()).
Como debes tomar los datos del tiempo de otra tabla, deberás abrir la tabla que corresponda y seleccionar el registro.
Para hacer esto, se utiliza el siguiente método:
Dim DB as Database
Set DB =Currentdb()
Dim T_REC as Recordset
Dim sql as string
sql="SELECT * FROM Nombre Tabla"
sql=sql & " WHERE NombreCampo=" & CriteriosSeleccion
Set T_REC=DB.OpenRecordset(sql)
.................
Una vez abierta la tabla y seleccionados los datos debemos aplicarlos en base a una condición.
If Tipo=True Then
[Tiempo Producción]=T_REC!NombreCampo
Else
[Tiempo Fabricación]=T_REC!NombreCampo
End If
...
Cerramos el recordset: T_REC. Close
Y ya tenemos la información que necesitábamos.
En cuanto al plantearse usar formularios continuos, no veo el problema, indicaselo al subformulario en las propiedades y traspasa las etiquetas de los campos a la cabecera del informe, y la apariencia será similar a la hoja de datos, pero puedes hacer muchos más cálculos, y tratamientos de la información.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas