Juanjo Luna

MVP Microsoft 365 Apps & Services 2023

LinkedIn Learning Instructor

Presidente de Access User Groups España

CEO Luna-Soft

Desarrollador

Consultor Informático

Juanjo Luna

MVP Microsoft 365 Apps & Services 2023

LinkedIn Learning Instructor

Presidente de Access User Groups España

CEO Luna-Soft

Desarrollador

Consultor Informático

Blog Post

Seleccionar registros en un cuadro de lista para visualizarlos en un informe

28 de febrero de 2024 El rincón de Happy, Formularios

Pregunta

¿Cómo puedo decirle a un informe que me muestre sólo los registros que previamente he seleccionado en un cuadro de lista que tiene la propiedad Selección múltiple activada?

Respuesta

Para hacer eso que pides puedes hacerlo de varias maneras. Yo te propongo una bastante simple:

Construye una variable con los diferentes valores que servirán como criterio para filtrar los registros del informe, y luego pásaselos a la instrucción DoCmd.OpenReport, en el argumento [WhereCondition], dentro de una cláusula IN. Esta cláusula IN admite múltiples valores separados por comas como criterio.

En la sección Ejemplos podrás bajarte una base de muestra con un formulario y un informe que muestran los pedidos y detalles de pedido de la base Neptuno, pero pego aquí el trozo de código que hace lo que necesitamos. Verás que no es demasiado complejo:

Código

Dim NumerosPedidos As String
Dim ElementoSeleccionado As Variant

    ' formamos una cadena con los números de pedidos seleccionados en el
    ' cuadro de lista y separados por comas (en este caso, sería algo
    ' como "10248,10249,10250,...")
    For Each ElementoSeleccionado In Me.lstPedidos.ItemsSelected
        NumerosPedidos = NumerosPedidos & Me.lstPedidos.ItemData(ElementoSeleccionado) & ","
    Next
    ' si había algún pedido seleccionado
    If Len(NumerosPedidos) > 0 Then
        ' quitamos la última coma de la cadena
        NumerosPedidos = Left(NumerosPedidos, Len(NumerosPedidos) - 1)
        ' y abrimos el informe en vista previa para visualizar los pedidos seleccionados
        DoCmd.OpenReport "Pedidos", acViewPreview, , "IdPedido IN(" & NumerosPedidos & ")"
    Else
        ' no se ha seleccionado ningún elemento del cuadro de lista
        MsgBox "Por favor, selecciona algún pedido"
    End If

Créditos

con el fin de dar a conocer el trabajo de uno de los más grandes en el mundo de Access en español, y tras solicitar su permiso, replico este artículo de Juan M Afán de Ribera. Todos los derechos y autoría corresponden a él. Access & VBA FAQ – Seleccionar registros en un cuadro de lista para visualizarlos en un informe (archive.org)

Taggs:
Related Posts
Opciones de impresión a través de código

Pregunta Sé cómo imprimir un informe mediante código y sé cómo hacer para que aparezca el cuadro de diálogo imprimir,…

Totales por página

Cómo conseguir en un informe calcular sólo el total para cada página

Write a comment