Como configurar un cuadro de lista para selección múltiple que habré un informe, en access 2010,

Lo hago le pongo simple y nada, no salen los datos, si le pongo cuadro combinado si los da, pero solo un dato y necesito que sea selección múltiple, que me falta de hacer.

1 Respuesta

Respuesta
1

Si sabes hacerlo con un cuadro combinado, tendrías que saber hacerlo con un cuadro de lista de selección simple, pues el funcionamiento es idéntico.

Si al cuadro de lista le pones selección múltiple, tienes que recorrer con un bucle la colección de elementos seleccionados. Por ejemplo:

Dim i As integer
For Each i In Me.lstNombreLista.ItemsSelected
msgbox "Has seleccionado " &  Me.lstNombreLista.ItemData(i)
Next i

Con este código te mostrará un mensaje con cada elemento seleccionado.

No explicas con detalle cómo quieres abrir el informe, asi que más no te puedo decir...

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Lo estoy haciendo vía diseño no von código, como le envío el ejemplo es pequeño dolo esa parte para que lo vea cortiendo, se lo mando en zip a que correo, gracias.

Puedes enviarlo aquí: [email protected]

Sólo con macros incrustadas no encuentro la forma, y ya puestos a meter código, prefiero hacerlo todo así:

http://www.filebig.net/files/5mxfGmJve4 

Te comento los cambios que le hice a tu BD:

1º/ la consulta sobra, pues al filtrar el informe por código, ya lo hago sobre la tabla.

2º/ El informe tiene como origen la tabla directamente, y no la consulta

3º/ Al informe le cambié la propiedad "Filtrar al cargar" a sí

4º/ El cuadro de lista no necesita 2 columnas (ID y producto) como tienes ahora, con tener sol la del producto lleva (porque ademas, intentas filtrar por producto y no por id)

5º/ El botón (comando17), en vez de la macro, lleva un procedimiento de evento en VBA. Te explico aquí el código con los comentarios, si quieres cópialo en la BD en vez de el que tiene, que no lleva los comentarios:

Private Sub Comando17_Click()
'Compruebas que haya datos en las fechas
If Nz(Me.Feha1, "") = "" Then
    MsgBox "No has seleccionado fecha inicial"
    Exit Sub
End If
If Nz(Me.Fecha2, "") = "" Then
    MsgBox "No has seleccionado fecha final"
    Exit Sub
End If
Dim item As Variant
Dim miFiltro As String
Dim misProd As String
'Creas la parte del filtro de las fechas
miFiltro = "Fecha>=#" & Me.Feha1 & "# AND Fecha<=#" & Me.Fecha2 & "#"
'Recoges lso valores seleccionados en la variable misProd,
'Encadenas los valores para conseguir esta secuencia: 'Prod1','Prod2',...
'es decir: comilla-nombre producto-comilla-coma...
For Each item In Me.text_produt.ItemsSelected
    misProd = misProd & "'" & Me.text_produt.ItemData(item) & "',"
Next item
'Si no has seleccionado nada, la longitud de la cadena de la variable misProd será 0=> Avisas y sales
If Len(misProd) = 0 Then
    MsgBox "No has seleccionado un producto"
    Exit Sub
End If
'Aquí le quitas la última coma (,) para que no de error
misProd = Left(misProd, Len(misProd) - 1)
'Creas el filtro con las fechas y los productos
miFiltro = miFiltro & " AND Producto IN (" & misProd & ")"
'Abres el informe filtrándolo al cargar
DoCmd.OpenReport "Rep_datos_con_condicones", acViewPreview, , miFiltro
End Sub

Si tienes dudas sobre alguna función, si colocas el cursor sobre ella y pulsas F1, se te abrirá la ayuda con su explicación y algún ejemplo.

¡Gracias!  esta perfecto, solo quería saber si se quiere se podría usar la consulta o daría error, lo de las funciones no se como se saca la ayuda, estando o desde donde.

La consulta la podrías usar, pero quitando los criterios que tenías (se filtran por código).

Para sacar la ayuda, en el editor de VBA (donde está escrito el código), colocas el cursor (el cursor, no el puntero del ratón) encima de lo que quieras consultar y pulsa la tecla F1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas