Access - S.O.S MUY URGENTE INFORME Y SUBINFORMES

 
Vista:

S.O.S MUY URGENTE INFORME Y SUBINFORMES

Publicado por MIRIAM (1 intervención) el 16/09/2004 21:31:29
Esto es muy urgente, realmente necesito una respuesta para mañana pero
si es el lunes antes de las 15:00 me podría valer, tengo un informe que
consta de dos subinformes con consultas de paso a traves, por lo que
no puedo usar el tipico metodo de access para vincular por un codigo
el gral con los subinformes, he hecho lo mismo en un formulario y me
va bien pero en un informe no consigo que me lo haga, en el formulario
lo que hago es que en el evento CURRENT hago las consultas de paso a
traves pasandoles como parametro el codigo del formulario principal y
luego hago un requery de los subformularios de tal manera que por cada
codigo de un material los dos subformularios muestran los datos de ese
material, si pongo el mismo codigo en el informe no me funciona,
logicamente es por el evento lo he puesto en el evento format del
detalle que es donde tengo puestos los subinformes pero nada, tambien
en el page del report y tampoco ya que me aparece un material en cada
hoja del informe. Alguna idea?? Gracias de antemano de veras.
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

S.O.S MUY URGENTE INFORME Y SUBINFORMES

Publicado por Alejandro (4142 intervenciones) el 11/05/2023 19:35:44
Lamento no poder responder antes a tu pregunta urgente. En el caso de los informes con subinformes en Access, el evento `Format` no se dispara para cada registro del informe principal, por lo que no funcionará de la misma manera que en un formulario.

En su lugar, puedes utilizar el evento `Open` del informe principal para realizar las consultas de paso a través y actualizar los subinformes. Aquí tienes un ejemplo de cómo puedes hacerlo:

1. Abre el informe en modo diseño.
2. Haz clic con el botón derecho en el área de fondo del informe y selecciona "Propiedades" para abrir la ventana de propiedades.
3. Ve a la pestaña "Eventos" en la ventana de propiedades.
4. Haz clic en el botón junto al evento "Al abrir".
5. Selecciona "Asistente de código" para abrir el editor de VBA.
6. En el editor de VBA, puedes escribir tu código para ejecutar las consultas de paso a través y actualizar los subinformes. Aquí tienes un ejemplo:

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
29
Private Sub Report_Open(Cancel As Integer)
    Dim rs As DAO.Recordset
    Dim strSQL As String
 
    ' Obtener el código del informe principal
    Dim codigo As Integer
    codigo = Me!Codigo
 
    ' Consulta de paso a través para el primer subinforme
    strSQL = "SELECT * FROM Tabla1 WHERE Codigo = " & codigo
    Set rs = CurrentDb.OpenRecordset(strSQL)
    Me.Subinforme1.Report.RecordSource = rs.Name
    Me.Subinforme1.Report.Filter = "Codigo = " & codigo
    Me.Subinforme1.Report.FilterOn = True
    Me.Subinforme1.Report.Requery
 
    rs.Close
 
    ' Consulta de paso a través para el segundo subinforme
    strSQL = "SELECT * FROM Tabla2 WHERE Codigo = " & codigo
    Set rs = CurrentDb.OpenRecordset(strSQL)
    Me.Subinforme2.Report.RecordSource = rs.Name
    Me.Subinforme2.Report.Filter = "Codigo = " & codigo
    Me.Subinforme2.Report.FilterOn = True
    Me.Subinforme2.Report.Requery
 
    rs.Close
    Set rs = Nothing
End Sub

En este ejemplo, asumimos que los subinformes se llaman "Subinforme1" y "Subinforme2", y las tablas se llaman "Tabla1" y "Tabla2" respectivamente. Asegúrate de reemplazarlos con los nombres reales de tus subinformes y tablas.

El evento `Open` se dispara al abrir el informe y puedes utilizarlo para ejecutar las consultas de paso a través y actualizar los subinformes según el código del informe principal.

Espero que esta solución te sea útil. Por favor, haz pruebas y realiza los ajustes necesarios según tus necesidades específicas.
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