Imprimir página | Cerrar ventana

Variables en Informes

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=87056
Fecha de impresión: 26/Marzo/2026 a las 15:29


Tema: Variables en Informes
Publicado por: AgustinMN
Asunto: Variables en Informes
Fecha de publicación: 06/Abril/2025 a las 18:24
Buenas tardes, escribo esto por si alguien pudiera echarme una mano. Se trata de lo siguiente:
Desde un formulario, en el que pregunto por fecha de inicio y fecha final para un informe, al llamar al informe mediante un botón, tengo escrito el siguiente código:

Private Sub B_IMP_INFORME2_Click() ' Imprime el informe desde Vba
    Finicio = CStr(Me.Fecha_Inicio)
    Ffin = CStr(Me.Fecha_Fin)
    srtfiltro = "Desde el " & Finicio & " hasta el " & Ffin
        
    ' Construir el texto del filtro
    ' strFiltro = dtInicio & " y  " & dtFin

If Finicio = Null Or Ffin = Null Then
    MsgBox "Las fechas para el filtrado no pueden estar vacías", vbCritical, "No hay registros a mostrar"
    Resume Next
End If

    On Error GoTo Solucionar_Error
    DoCmd.OpenReport "INFORME_INGRESOS", acViewPreview, , "T_ING_FI BETWEEN #" & Format(Finicio, "MM/DD/YYYY") _
                    & "# AND #" & Format(Ffin, "MM/DD/YYYY") & "#"

Solucionar_Error:
    If Err.Number = 2501 Then
        Resume Next
    End If

End Sub.

LA cuestión es que yo quiero que aparezca en el encabezado del informe la variable StrFiltro, pero por más que he probado, imposible. No lo consigo. ¿Alguien puede darme una pista?




-------------
AgustinMN



Respuestas:
Publicado por: Mihura
Fecha de publicación: 06/Abril/2025 a las 18:48
Pasa los datos que necesites en el argumento Openargs ... y los recuperas dentro del informe con Me.OpenArgs

-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: AgustinMN
Fecha de publicación: 06/Abril/2025 a las 19:08
Muchas gracias,Miguel.
Pero ¿me serviría la misma línea de codigo? Me refiero a ¿con OpenArgs puedo también pasar las fechas de inicio y fin? ¿Se pueden pasar más de uno?


-------------
AgustinMN


Publicado por: AgustinMN
Fecha de publicación: 06/Abril/2025 a las 19:09
Perdón, el corrector me ha cambiado Mihura por Miguel.
Disculpa



-------------
AgustinMN


Publicado por: Mihura
Fecha de publicación: 06/Abril/2025 a las 19:34
Tu corrector no va muuuuuu equivocado LOL.

En la misma línea del OpenReport le puedes pasar valor a uno o a varios parámetros a la vez, así que puedes combinar el WhereCondition con el OpenArgs.

Para pasar varios valores de una sola vez en el OpenArgs basta con que codifiques los mismos según un criterio propio, que es el que tendrás que utilizar para 'recuperarlos' en el informe.

Yo concateno los valores con | y los obtengo en el informe con Split:

         valor1|valor2

         Variant = Split(Me.OpenArgs, "|")

y obtengo:

         Variant(0) = valor1
         Variant(1) = valor2





-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: AgustinMN
Fecha de publicación: 06/Abril/2025 a las 19:45
Otra vez, muchas gracias, Mihura
No soy muy ducho en esto, pero voy a intentarlo.



-------------
AgustinMN


Publicado por: AgustinMN
Fecha de publicación: 07/Abril/2025 a las 07:18
Mihura, gracias por la información. Solucionado

-------------
AgustinMN



Imprimir página | Cerrar ventana