none
Crear un informe desde un formulario RRS feed

  • Pregunta

  •  

    Hola a todos,

     

       Necesito saber como puedo hacer una llamada a un informe y que me respete la consulta que anteriormente hago en un formulario y cuyo resultado muestro a su vez en un subformulario, es decir:

     

    Hago las consultas de esta forma:

     

      s = "Select * FROM [Consulta]"

     

    If ((Verificación20 = True) And ([Cuadro combinado199].Value <> "")) Then
            Id = [Cuadro combinado199].Value
            If j = 1 Then
                s = s & "AND "
            Else
                s = s & "WHERE "
            End If
            s = s & "[Consulta].[NombreCompleto] = "
            s = s & "'" 

            s = s & Id 

            s = s & "'"
            j = 1
        End If

     

    Las muestro en un subformulario:

     

    [Búsqueda subform].Form.RecordSource = s

     

    Y por último llamo al informe:

     

    Public Sub Comando8_Click()

    On Error GoTo Err_Comando8_Click

     

    Dim stDocName As String
    stDocName = "InformeContratas"
    DoCmd.OpenReport stDocName, acPreview

     

    Exit_Comando8_Click:
        Exit Sub

    Err_Comando8_Click:
        MsgBox Err.Description
        Resume Exit_Comando8_Click
       
    End Sub

     

    Mi problema reside en que al llamar al informe me muestra los campos sin filtrar.

    Espero que me podáis ayudar.

    Muchas gracias.

    lunes, 12 de noviembre de 2007 15:47

Respuestas

  • Buenos dias,

     

    A ver... una posible solucion asi rapida (no es la mas limpia, pero solo tengo 1 minuto XD) sería:

     

    s = "Select * FROM [Consulta]"

     

    If ((Verificación20 = True) And ([Cuadro combinado199].Value <> "")) Then
            Id = [Cuadro combinado199].Value
            If j = 1 Then
                filtro = filtro & "AND "
            Else
                s =s &  "WHERE "
            End If
            filtro = "[Consulta].[NombreCompleto] = "
            filtro = filtro & "'" 

            filtro = filtro & Id 

            filtro = filtro & "'"
            j = 1
        End If

    s=s & filtro

     

    Public Sub Comando8_Click()

    On Error GoTo Err_Comando8_Click

     

    Dim stDocName As String
    stDocName = "InformeContratas"
    DoCmd.OpenReport stDocName, acPreview, , filtro  

     

    Exit_Comando8_Click:
        Exit Sub

    Err_Comando8_Click:
        MsgBox Err.Description
        Resume Exit_Comando8_Click
       
    End Sub

     

    O sea, el filtro en si que quieras hacer, a parte de pasarlo a la consulta sql, lo pasas en una variable global Filtro y luego, al llamar el informe le pasas el filtro como parametro (DoCmd.OpenReport stDocName, acPreview, , filtro  ), y funcionará.

     

    Espero no haberte mareado mucho.

     

    Hasta pronto

     

    Lluís Clopés

     

     

    jueves, 22 de noviembre de 2007 10:46