Crear botón mostrar en un informe una selección múltiple del listbox

Sigo con mi proyecto cada vez más cerca de terminarlo y tengo algunas cuestiones que quisiera me ayuden a hacer funcionar. Tengo un formulario donde ingreso 6 criterios de búsqueda en textbox independientes, un botón Buscar que me arroja un resultado en un cuadro Listbox, además otro botón que me muestra ese resultado (todos los items) en un informe. Había solicitado ayuda para que en el evento al hacer click del listbox, clickeando sobre determinado item me lo muestre en otro informe, que lo logré, pero quiero descartar ésta ultima opción y poder seleccionar 1, 2, 3 o más ítems del listbox y poderlos mostrar en un informe. Tenía este código en el evento al hacer click del listbox:

DoCmd.OpenReport "IMPRESION_DATOS_BUSQUEDA_LISTA", acPreview, , "[STR]='" & Me.Lista_RESULTADO & "'" 

Ahora he creado un botón VER_SELECCION y quisiera hacerlo funcionar.

1 respuesta

Respuesta
1

Este es el código que necesitas, teniendo en cuanta que tu cuadro de lista coge un valor de texto, y le has cambiado sus propiedades para permitir selección múltiple:

Private Sub cmdVer_Click()

'Declaras las variables

Dim ctlList As Control

Dim Opcion As Variant

Dim miSeleccion As String

'Inicias la estructura del filtro

miSeleccion = "[STR] IN ('"

Set ctlList = Me.Lista_RESULTADO

'Coges los valores seleccionados en el cuadro de lista, y los añades al filtro

For Each Opcion In ctlList.ItemsSelected

miSeleccion = miSeleccion & ctlList.ItemData(Opcion) & "','"

Next Opcion

'Si la longitud del filtro es 11, es que no seleccionaste ninguna opcion

If Len(miSeleccion) = 11 Then

MsgBox "No has seleccionado ninguna persona", vbInformation, "AVISO"

Exit Sub

End If

'Retocas el filtro para quitar la última coma y cerrar el parentesis

miSeleccion = Left(miSeleccion, Len(miSeleccion) - 2) & "')"

'Abres el informe filtrado

DoCmd.OpenReport "IMPRESION_DATOS_BUSQUEDA_LISTA", acPreview, , miSeleccion

End Sub

¡Gracias Sveinbjorn El Rojo!. Como siempre excelente tu respuesta!. Ahora puse el código tal cual y me arroja un error 3075, error de sintaxis en la cadena de expresión de consulta '[STR] IN ('12345-14','12345-15','12345-13")'. Dentro del paréntesis los datos que seleccioné. Te recuerdo que el modo de selección múltiple es simple no extendida. Saludos!

Tienes un error de sintaxis en el código en esta parte:

miSeleccion = Left(miSeleccion, Len(miSeleccion) - 2) & "')"

Lo que va después del & es esta secuencia:

Comillas dobles - comilla simple - paréntesis - comillas dobles

Y tu tienes algo mal (...'12345-13")') porque te sale una comilla doble antes del paréntesis en vez de una simple...

Revisa el código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas