Access - como crear un reporte via codigo?

 
Vista:

como crear un reporte via codigo?

Publicado por ahrimanes (6 intervenciones) el 05/09/2006 23:38:27
sera posible?, por que nescecito hacer un reporte de una consulta que me aroja datoos cambiantes como son los encabesados de columnas,
o en su defecto como puedo cambiar el origen de datos de un text?. via codigo
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

Generar reporte con encabezados de columnas cambiantes desde una consulta

Publicado por Alejandro (4142 intervenciones) el 25/07/2023 16:17:38
Para generar un reporte en Access con encabezados de columnas cambiantes, necesitarás utilizar código VBA para modificar el origen de datos del control "Texto" que representa el encabezado de columna en tu informe. A continuación, te proporciono una solución que te permitirá lograr esto:

1. Crea el informe: Si aún no tienes un informe en Access, crea uno para representar tus datos.

2. Agrega un control "Texto": En el encabezado de columna del informe, agrega un control "Texto" que represente el encabezado de columna que cambiará dinámicamente.

3. Asigna un nombre al control "Texto": Asegúrate de asignar un nombre único al control "Texto". Por ejemplo, puedes nombrarlo como "txtEncabezadoColumna".

4. Utiliza código VBA en el evento "Al cargar" del informe: Ve al diseño del informe, haz clic con el botón derecho del ratón sobre el informe y selecciona "Ver código" (View Code). Luego, agrega el siguiente código en el evento "Al cargar" del informe:

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
Private Sub Report_Load()
    Dim strSQL As String
    Dim rs As DAO.Recordset
    Dim encabezadoColumna As String
 
    ' Construye la consulta que genera los datos cambiantes para el encabezado de columna
    strSQL = "SELECT TOP 1 NombreEncabezado FROM TuConsulta ORDER BY CampoOrdenamiento;"
 
    ' Abre un recordset con los datos de la consulta
    Set rs = CurrentDb.OpenRecordset(strSQL)
 
    ' Verifica si se encontraron datos en la consulta
    If Not rs.EOF Then
        encabezadoColumna = rs.Fields("NombreEncabezado")
    Else
        ' Si no se encontraron datos, asigna un valor por defecto
        encabezadoColumna = "Encabezado Predeterminado"
    End If
 
    ' Cierra el recordset
    rs.Close
    Set rs = Nothing
 
    ' Asigna el valor obtenido al control "Texto" del encabezado de columna
    Me.txtEncabezadoColumna.Value = encabezadoColumna
End Sub

5. Ajusta el código: Asegúrate de cambiar "TuConsulta" por el nombre de tu consulta que genera los datos cambiantes y "CampoOrdenamiento" por el campo que se utilizará para ordenar los resultados y obtener el valor más actualizado.

Con esta solución, cada vez que se abra el informe, el código VBA ejecutará la consulta que proporciona los datos cambiantes para el encabezado de columna y actualizará el control "Texto" con el valor obtenido.

Es importante tener en cuenta que si los datos cambiantes son muy numerosos o cambian con mucha frecuencia, este enfoque podría afectar el rendimiento del informe. Si ese es el caso, puedes considerar otras opciones, como utilizar un subinforme o un informe basado en una tabla dinámica en Excel, que son más adecuados para mostrar datos cambiantes o dinámicos en informes.

Espero que esta solución te sea útil y te permita generar un informe con encabezados de columna cambiantes según los datos obtenidos en la consulta. ¡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