Integrar un informe a partir de selección campos |
Responder |
Autor | |
Ezel
Nuevo Unido: 14/Agosto/2020 Localización: Cuba Estado: Sin conexión Puntos: 35 |
Opciones de entrada
Gracias(0)
Enviado: 12/Mayo/2021 a las 00:48 |
Hola a todos!!! Me han planteado crear un procedimiento mediante el cual el usuario seleccione los campos que integrarán un informe, lo cual pienso hacer mediante casillas de verificación en un formulario; pero veo la dificultad en cómo hacer para que la selección del usuario se traduzca en columnas del informe. Si alguien tiene alguna experiencia similar les estaría agradecido. Saludos
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14734 |
Opciones de entrada
Gracias(0)
|
Mi experiencia es.... no lo hagas con informes; hazlo con Excel.
Me explico. Permites al usuario seleccionar los campos y creas una consulta con ellos. La almacenas (CreateQueryDef) para posteriormente exportarla a un fichero Excel (TransferSpreadsheet). Después puedes abrir el fichero por automatización y "tunearlo". Si quieres hacerlo con un informe yo utilizaría una táctica parecida dónde la creación de la SQL lo que haría sería asignar alias conocidos a los campos seleccionados por el usuario. Los Alias serian "Campo1", "Campo2", "Campo3", etc El informe se basaría en la consulta con los controles basados en los Alias. Problemas: - Ajustar las anchuras de los campos de texto al contenido. Nos podemos encontrar con un control que deba mostrar el campo Dirección y solo muestre 10 caracteres o un campo CodigoPostal dónde quepan 50 - Los tipos de control que no sean TextBox. Si un campo es, por ejemplo, un CheckBox, hay que controlarlo (a no ser que queramos mostrar Sí/No) - ... Seguro que hay unos cuantos más pero, al no utilizar informes, no los anticipo. Un saludo |
|
Ezel
Nuevo Unido: 14/Agosto/2020 Localización: Cuba Estado: Sin conexión Puntos: 35 |
Opciones de entrada
Gracias(0)
|
Gracias Xavi. Me agrada la idea de hacerlo con Excel como sugieres. No se si tendrás a mano algina referencia del prpcedimiento para integrar la consulta partiendo de los campos que seleccione el usuario. Saludos
|
|
mounir
Colaborador Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6479 |
Opciones de entrada
Gracias(0)
|
Hola!
En la página del maestro Búho hay dos ejemplos de INFORMES DINÁMICOS de los maestros Emilio Sancha y Eduardo Olaz. |
|
Un Saludo.
|
|
Ezel
Nuevo Unido: 14/Agosto/2020 Localización: Cuba Estado: Sin conexión Puntos: 35 |
Opciones de entrada
Gracias(0)
|
Amigos no logro descargar el ejemplo desde la página de Buho y aun no he logrado mi emprño, que consiste en que el usuario pueda "armar" una consulta, a su gusto, seleccionando campos desde un formulario, en una extensa lista mediante casillas de verificación, para exportarla luego a Excel.
El problema: En el diseño de la consulta estoy empleando para cada campo la funcion SiInm en algo así: Campo1: SiInm([Formularios]![Formulario1]![Opcion1]=-1,[NombredelCampo],Nulo) Pero cuando el valor no es -1 ME MUESTRA EL CAMPO CON VALORES NULOS y MI INTENCIÓN ES QUE NO LO MUESTRE, es decir que solo cargue los campos equivalentes a las opciones seleccionadas. Por eso me disculpo e insisto en su valiosa ayuda. Gracias de antemano!!!! |
|
emiliove
Administrador Unido: 16/Junio/2009 Localización: Mexico Estado: Sin conexión Puntos: 5694 |
Opciones de entrada
Gracias(0)
|
Y desde la página de Emilio Sancha ya lo intentaste, ahí tambien tiene uno por lo menos un ejemplo que te puede interesar.
Saludos.
|
|
mounir
Colaborador Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6479 |
Opciones de entrada
Gracias(0)
|
Pues no lo sé, a mi me funcionan los dos enlaces. |
|
Un Saludo.
|
|
Ezel
Nuevo Unido: 14/Agosto/2020 Localización: Cuba Estado: Sin conexión Puntos: 35 |
Opciones de entrada
Gracias(0)
|
Gracias Amigo. Logré descargarlos pero, con sinceridad, me resultan algo complicados para lo que pretendo y trataré de hacerme entender mejor.
He llegado a un punto en el que en un Cuadro de Texto ubicado en un Formulario me genera una sentencia SQL a partir de los campos que seleccione el usuario. El problema: Necesito algún procedimiento de VBA que me cree una consulta de Access con la SQL que contiene el Cuadro de Texto, para poderla emplear y exportarla luego a Excel. Gracias de antemano y les reitero mis disculpas |
|
Ezel
Nuevo Unido: 14/Agosto/2020 Localización: Cuba Estado: Sin conexión Puntos: 35 |
Opciones de entrada
Gracias(0)
|
Amigos lo he logrado desde hace varios días; y me disculpo por no haber compartido antes la solución con ustedes, pero como soy solo un aficionado, puede que hasta me cueste trabajo explicar. Pude incluso retomar la idea inicial de generar directamente una especie de informe dinámico, a partir de activar o no varios CheckBox ubicados en un formulario.
Trataré de ir a lo esencial: El informe a obtener es una relación de personas y varios de sus datos (estas serían las opciones) con apariencia de tabla. Al activar cada CheckBox se hace visible un TextBox contiguo con un valor numérico, que será el ancho de cada columna en el informe. Si el correspondiente CheckBox no está marcado, el TextBox asume el valor de cero (0), ello mediante algo como esto: Private Sub Opc1_Click () If .Opc1 <> 0 Then .Opc1Ancho.Visible = True .Opc1Ancho = 1.4 'Este valor varía en para cada campo Else .Opc1Ancho.Visible = False .Opc1Ancho = 0 End If End Sub Cada uno de estos TextBox tienen la opción de modificar su valor, para aumentar o disminuir el ancho de cada columna en el informe. A este procedimiento de aumentar o disminuir le incluí unos botones que establecen +0.1 ó -0.1 (según el caso) en el TextBox (no ahondaré en esta parte para no aburrirlos). Una vez definido esto pasamos al informe, en el evento Format de cada una de sus secciones donde hay campos (Encabezados de Grupo y Detalle) paso a definir, en las propiedades de cada campo, su ancho y su posición izquierda, de esta manera: Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer) .Campo1.Width = Forms!Formulario1!Opc1Ancho * 567 .Campo2.Width = Forms!Formulario1!Opc2Ancho * 567 .Campo3.Width = Forms!Formulario1!Opc3Ancho * 567 .Campo4.Width = Forms!Formulario1!Opc4Ancho * 567 …… 'Multiplico por 567 para convertir cm a twips 'Para definir la posición izquierda de cada campo, asumo que es la suma del ancho de los campos que le anteceden a la izquierda, de esta manera sería: .Campo2.Left = .Campo1.Width .Campo3.Left = .Campo1.Width + .Campo2.Width .Campo4.Left = .Campo1.Width + .Campo2.Width + .Campo3.Width End Sub Le he incluido al formulario un mecanismo que alerta cuando la suma de todos los "anchos" de columna supera las dimensiones de la página, ello en el evento AfterUpdate de cada TextBox y en los eventos Click de los CheckBox, en todos los casos compara la suma de todos los TextBox con las dimensiones de la hoja (previamente calculadas y declaradas) y si dicha suma es superior al tamaño de la hoja, muestra un texto e inhabilita el comando de abrir el informe. Con esto obtengo lo que necesito y doy por cerrado el tema. Estoy seguro de que existen otras formas más novedosas pero esta fue la que logré aplicando mis escasos conocimientos y me place compartir con ustedes. Atento a sus sugerencias u observaciones. Saludos |
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |