Buen día, necesito emitir un informe pero quiero escoger los campos a partir de un formulario.

Tengo un formulario con varios campos y al lado derecho de cada uno de ellos un campo Si/No, la idea es hacer un clic en el campo Si/No y emitir en el informe solo los que se marcaron, no todos.

1 Respuesta

Respuesta
2

No queda claro que es lo que quieres, si hacer un informe desde un botón de comando de un formulario o que sólo sean visibles en el informe aquellos campos en que la casilla de verificación sea True.

Si es el primer caso, prepárate para escribir. Tienes una explicación perfecta en

http://microsoft.public.es.access.narkive.com/icOJgOwH/se-puede-crear-un-informe-desde-vba 

Pero tienes que tener en cuenta, que a cada cuadro de texto que crees, deberías poner antes

If casilla5=-1 then

Set aControles(0) = CreateReportControl( _

Y si son muchos cuadros de texto, vas a estar escribiendo hasta el día del juicio final.

En el caso de que sea lo segundo, en el evento Al dar formato de las propiedades-eventos-de la sección donde esté el control puedes poner

If forms!nombredelformulario!casilla5=true then

control.visible=false

end if

En realidad creo que no me logro explicar.

Lo que necesito es, bueno tengo un formulario con un listado de campos (28 en total) y están listados en dos columnas, al lado derecho de cada uno de ellos una casilla de verificación, la idea es que el usuario marque en la casilla que corresponde a cada campo y solo se informen los marcados a si sean solo 4 o 9 o los 28, solo los que están marcados deben salir en el informe y de a poco se me han ido cayendo las ideas, ojala me puedas ayudar, por ahora y desde ya, muchas gracias.

Pues tal como lo planteas, y que yo sepa, no te queda mas remedio que hacer lo que te dice el enlace.

Podrías hacer algo parecido redimensionando los cuadros de texto del informe a los que tendrías que poner Visible=no a todos, y en el evento al dar formato de la sección del informe donde estén

If not isnull([campo1]) then

campo1.visible=true

campo1.width=...

campo1.Height=...

End if

If notisnull([campo2]

etc...

También puedes poner

for each control in report.control

if control.controltype=actextbox and control is not null then

control.visible=true

end if

next

Esto lo que haría sería que los que no tengan valor no serían visibles.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas