Access - Ordenar y agrupar, informes

 
Vista:

Ordenar y agrupar, informes

Publicado por lola beltran (2 intervenciones) el 22/06/2005 18:16:29
Hola, tengo un informe que tiene varios grupos de campos, desde un formulario el usuario selecciona que grupos quiere visualizar. MI PROBLEMA; el informe agrupa por, cliente, familia, matriz, perfil, acabado,... si el usuario quiere ver solamente el grupo acabados (en realidad lo ve), pero se produce un salto para cada cliente,.. osea que muestra todos los acabados para cada cliente. yo quiero que muestre los acabados sin tener en cuenta los clientes. bueno el problema es que con las combinaciones que se derivan del formulario que hace de configurador y filtro se generarian unos 120 informes. ¿habria forma de modificar la posicion/orden de los grupos dentro del informe mediante codigo VBA?. se me ocurre crear un informe patron, copiarlo a otro temporal y eliminar los encabezados y pies de grupo, sele ocurre a alguien otro modo más flexible?. escribo esto despues de revisar los mensajes del foro, pero creo que no se trata este problema en concreto.

Gracias por aguantar desde el otro lado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Personalizar grupos en un informe utilizando VBA

Publicado por Alejandro (4142 intervenciones) el 06/06/2023 00:48:44
Si deseas personalizar la posición u orden de los grupos dentro de un informe en Access, puedes utilizar código VBA para lograrlo. Aquí tienes una posible solución:

1. Crea un informe base o patrón:
- Crea un informe con la estructura deseada, incluyendo todos los grupos necesarios (cliente, familia, matriz, perfil, acabado, etc.).
- Asegúrate de configurar los grupos y los campos adecuadamente en el informe base.

2. Crea un formulario de configuración:
- Crea un formulario en el cual el usuario pueda seleccionar los grupos que desea visualizar en el informe.
- Puedes utilizar controles de casilla de verificación o cualquier otro tipo de control para permitir al usuario hacer estas selecciones.

3. Código VBA en el evento "Al hacer clic" del botón de generación de informe:
- En el evento "Al hacer clic" del botón que genera el informe, agrega el siguiente código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub btnGenerarInforme_Click()
    Dim strFiltro As String
    Dim strOrden As String
    Dim rpt As Report
 
    ' Construir el filtro basado en las selecciones del usuario en el formulario de configuración
 
    ' Ejemplo: Si solo se selecciona el grupo "Acabado"
    ' strFiltro = "[Grupo] = 'Acabado'"
 
    ' Construir el orden de los grupos en el informe
 
    ' Ejemplo: Si se quiere que el grupo "Acabado" aparezca primero
    ' strOrden = "[Grupo] = 'Acabado', [Grupo] = 'Cliente', [Grupo] = 'Familia', [Grupo] = 'Matriz', [Grupo] = 'Perfil'"
 
    ' Abrir el informe base
    Set rpt = DoCmd.OpenReport("NombreInformeBase", acViewPreview)
 
    ' Aplicar el filtro y el orden al informe
    rpt.Filter = strFiltro
    rpt.OrderBy = strOrden
 
    ' Mostrar el informe al usuario
    rpt.Visible = True
 
    ' Limpiar los objetos utilizados
    Set rpt = Nothing
End Sub

4. Personaliza el código VBA según tus necesidades:
- En el código VBA proporcionado, deberás personalizar las variables `strFiltro` y `strOrden` para reflejar las selecciones del usuario en el formulario de configuración y el orden deseado de los grupos en el informe.
- Puedes utilizar condiciones `If` para construir dinámicamente las cadenas de filtro y orden, en función de las selecciones del usuario.

Con esta solución, evitas tener que crear múltiples informes para cada combinación posible de grupos, ya que puedes controlar dinámicamente el filtro y el orden de los grupos utilizando código VBA.

Espero que esta solución te sea útil. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar