Access - Informe independiente con recordset

 
Vista:

Informe independiente con recordset

Publicado por Carlos Andrés (18 intervenciones) el 21/10/2005 18:13:16
Hola a todos:

Tengo un archivo Access conectada a una base da datos SQL Server 2000.
Por especificaciones del proyecto, estoy utilizando la tecnología ODBCDirect con DAO 3.5.
Lo anterior implica que los formularios y los informes deben ser independientes, es decir, no dependen de tabla o consulta alguna. Los datos se recuperan vía recordset mediante código VB.
Si ya tengo construido el recordset con un conjunto de registros y el informe con campos independientes, tengo el sgte problema:
Cómo hago para mostrar en el detalle del informe los registros del recordset?
En qué evento o eventos recupero cada uno de los registros del recordset?
Cómo sería el código VB y en que procedimientos y/o evento del informe se implementa?

De antemano gracias.

Carlos Andrés
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

Mostrar registros de un Recordset en un informe independiente

Publicado por Alejandro (4142 intervenciones) el 12/06/2023 23:22:39
Para mostrar los registros de un Recordset en un informe independiente en Access utilizando la tecnología ODBCDirect con DAO 3.5, puedes seguir estos pasos:

1. Abre el informe en modo de diseño.
2. Asegúrate de que el informe no esté vinculado a ninguna tabla o consulta.
3. Agrega los controles de texto o etiquetas necesarios en el detalle del informe para mostrar los datos de cada registro del Recordset.
4. Abre el Editor de VBA haciendo clic en el botón "Visual Basic" en la pestaña "Diseño".
5. En el Editor de VBA, selecciona el informe en el panel "Explorador de proyectos".
6. En el panel "Propiedades", selecciona el evento "Al abrir" (Open).
7. Escribe el siguiente código VBA para recuperar los registros del Recordset y mostrarlos en el informe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Report_Open(Cancel As Integer)
    Dim rs As DAO.Recordset
 
    ' Crea y abre el Recordset con los datos necesarios
    Set rs = CreateRecordset() ' Reemplaza CreateRecordset() con el código para crear tu propio Recordset
 
    ' Recorre los registros del Recordset
    Do Until rs.EOF
        ' Mostrar los valores de los campos del Recordset en los controles del informe
        Me.NombreControl1.Value = rs!Campo1
        Me.NombreControl2.Value = rs!Campo2
        ' ... Agrega más líneas según la cantidad de campos y controles necesarios
 
        ' Avanzar al siguiente registro
        rs.MoveNext
    Loop
 
    ' Cierra el Recordset
    rs.Close
    Set rs = Nothing
End Sub

Nota: En el código anterior, deberás reemplazar `CreateRecordset()` con tu propio código para crear el Recordset con los datos necesarios.

8. Guarda y cierra el Editor de VBA.
9. Guarda el informe y ciérralo.
10. Abre el informe en modo de vista para ver los registros del Recordset mostrados en los controles del informe.

En el evento "Al abrir" del informe, se crea y abre el Recordset con los datos necesarios. Luego, se recorren los registros del Recordset y se asignan los valores de los campos a los controles del informe. Finalmente, se cierra el Recordset.

Espero que esta solución te ayude a mostrar los registros de tu Recordset en un informe independiente en Access. ¡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