|
|
Formularios : Seleccionar registros en un cuadro de lista para visualizarlos en un informe
| Autor/es: Juan M Afán de Ribera | | 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: | 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
| Ejemplos: seleccionmultiple | Temas relacionados: |
|