Reportes

Estimados expertos. Estoy trabajando con diseño de reportes y quisiera si se puede diseñar una pantalla de reportes para los usuarios, en el cual se puedan seleccionar los campos que que se quieren mostrar en el reporte y si los los que se desean sumarizar. Realmente no tengo idea de como hacerlo en access y si es por código quisiera un ejemplo. Gracias por su tiempo.

1 respuesta

Respuesta
1
Hombre, realmente, como poder se puede hacer pero te aviso desde ya. Es MUY complicado obtener buenos resultados, con seguridad te digo que no vale la pena.
Tienes una opción alternativa, y es utilizar una consulta personalizada en lugar de un informe.
Para conseguirlo, lo primero que necesitas es un formulario con una lista de los campos. Ponle a la lista que tiene dos columnas, en la propiedad del ancho de columnas le pones a la primera 0 y a la segunda algo así como 5 cm. En la parte de datos, le pones 'lista de valores' y te dedicas a escribir tus campos con dos valores para cada uno, el primero el nombre que tiene y el segundo una descripción, cada cosa entre comillas y separado por punto y coma. Por ejemplo
"ape1";"Apellido 1";"ape2";"Apellido 2";"dire";"Direccion"
Vale, lo has pillado. En caso de que realmente sean muchos, tendrás que hacerte una tabla de dos campos, meter esa información en esa tabla y cambiar la lista para que coja los datos de ahí.
Sigamos con la lista. Le pones, en "otras", la propiedad de selección múltiple, simple (click selecciona/deselecciona) o extendida (ctrl+click, shift+click y todo eso), la que prefieras. Y le pones un nombre o te quedas con el que te pone por defecto.
Vale. Ahora le pones un botón al formulario para lanzar la consulta. Pasas del asistente si te sale, le sacas las propiedades y le metes un evento de 'al hacer click' para generar código.
Estamos en el editor de visual basic, que es donde se hacen las cosas interesantes ;-)
Le tienes que pegar lo siguiente
Dim it, t$, qdf As QueryDef, db As Database
For Each it In Me.Lista0.ItemsSelected
t = t & IIf(t > "", ",", "") & Me.Lista0.Column(0, it)
Next
Set db = CurrentDb
On Error Resume Next
DoCmd.Close acQuery, "tmpqdf"
db.QueryDefs.Delete "tmpQdf"
On Error GoTo 0
Set qdf = db.CreateQueryDef("tmpQdf", "select " & t & " from refe")
DoCmd. OpenQuery "tmpqdf"
Fíjate que le tienes que personalizar el nombre de la lista, que yo he dejado el por defecto, lista0.
Comprueba también que en herramientas/referencias tienes marcada la Microsoft DAO 3.6 Object Library, o la versión que tengas.
Graba todo, y prueba el formulario. Debe funcionarte (a mí me lo hace).
Ahora las objeciones. No tienes control sobre el ancho de página, por lo que si seleccionas muchos campos se saldrá a la siguiente. Tampoco es simple ponerlo en apaisado. Precisamente estos problemas son los que hacen complicado hacer informes automáticos, ya que aunque se puede hacer, tocaría ir especificando posiciones, tamaños y tipo de cada campo que se coloca, así como el estilo que le quieras dar.
.. y por eso mismo espero que esto te sirva. Si no te valiera, cierra la pregunta igual y la vuelves a plantear en el tablón, pero es que me extrañaría que alguien te la contestase.
En todo caso, como esto no era muy complicado, aquí lo tienes.
Ah! Obviamente también tienes que personalizar donde se hace el createquerydef, y poner tu tabla origen, o más probablemente, el nombre de una consulta que te hagas y donde se obtenga toda la información que el usuario pueda llegar a necesitar.
Lo de la primera parte, para la lista, tienes que sacar las propiedades de la lista. Abre el formulario en vista diseño, selecciona la lista. Si no tienes la ventana de propiedades activa, la sacas desde el menú ver/propiedades. TE cambias a la pestaña de datos, y ahí tienes lo de 'lista de valores' y el campo inmediatamente inferior, que es donde tienes que poner lo que te decía. El resto de propiedades (nº de columnas, ancho...) las tienes también en esa ventana, repartidas por las pestañas.
Y para lo del código, vuelve a leer el mensaje y ves haciéndolo sobre la marcha. Te he descrito cada click de ratón que hay que hacer.
Ánimo, no es tan complicado, es cuestión de práctica. Al principio se hace lioso porque hay muchas para controlar, pero en cuanto te acostumbras es pura rutina.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas