Campo calculado en informe con subinforme

Tengo un informe que posee un subinforme. El subinforme tiene origen de registros una tabla. Esa tabla posee un formulario de entrada de datos, con origen de registros una consulta. En ese formulario hay un campo calculado que calcula (valga la redundancia) los días entre intervalo de fechas (es una columna en la consulta), y en otro control de ese formulario se inserta ese resultado, que tiene origen de control un campo de la tabla. Así me queda la tabla con los días calculados (necesito que se guarde el valor). El tema es que el subformulario, al estar basado en la tabla, solo muestra los datos del control "dia" si yo abro el formulario previamente y se actualizan los campos, que se calculan los días en el evento Current del formulario. Pero si abro el informe sin previamente haber abrierto el formulario no me salen los campos calculados, porque obviamente no se ejecuta el código del current en el formulario. El código que tengo en el evento Current del formulario es

If IsNull(Me.F_Fin) Then
Me.Dia = DateDiff("d", [F_Inicio], Date)
Else
Me.Dia = DateDiff("d", [F_Inicio], [F_Fin])
End If
If Me.Motivo_Inicio = "CULTIVO" Then
Me.Germen2.Visible = True
Me.Germen3.Visible = True
Me.agregargermen.Visible = False
Me.Germen.Visible = True
Else
Me.Germen2.Visible = False
Me.Germen3.Visible = False
Me.agregargermen.Visible = False
Me.Germen.Visible = False
End If

Lo que quisiera es poder hacer lo mismo en el subinforme, ya que como dije arriba, si no navego por el formulario y se actualizan los datos, en el informe no me salen los dias en el control "dia".

2 respuestas

Respuesta
2

El equivalente al evento "Al activar registro" del formulario (Form_Current) en un informe es "Al dar formato" de la sección correspondiente (normalmente será la sección detalle: Detalle_Format)

Sin acabar de entender del todo el planteamiento del problema, si codificas ese evento con los cálculos y controles que necesites, te debería funcionar.

Un saludo.


¡Gracias! Ahí probé pero no va, me parece que porque uso Me."control". ¿Debería especificar que el control pertenece al subinforme no?

Depende, si el código lo pones en el evento del informe, sí, si lo pones en el del subinforme, no.

Lo lógico (para mí) sería que lo hicieses en el evento "al dar formato" de la sección detalle del subinforme.

¡Gracias! Hola Sveinbjorn El Rojo, claro. Lo hice así pero al ejecutar el subinforme, me sale el control "dia" vacío. Y si ejecuto el informe donde esta contenido éste, me sale el siguiente error:

Y al depurar me marca la fórmula, la cual en el formulario donde también la uso, me funciona. ¿Qué estaré omitiendo?

Report_I_ATB es el subinforme.

Haz en cuadro de texto Día independiente, es decir, bórrale el origen de control que tenga. Ten en cuenta que un informe no es para meter datos como los formularios, y por tanto no puedes asignar directamente un valor a un control "dependiente"

Respuesta
2

Eteban: Si esos "Controles" los tienes en el Informe(SubInforme), y casi seguro estarán en la seccón de Detalle, usa el código o las líneas que necesites en el Evento al Dar formato de esa sección de Detalle. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas