Lanzar un informe con filtro a través de una lista de selección múltiple
Option Compare Database Option Explicit Private Sub cmdBorrar_Click() With Me .CBOSITU.Value = Null .cbsec.Value = Null .cbtipo.Value = Null .cbcat.Value = Null .FilterOn = False End With End Sub Private Sub cmdFiltro_Click() Dim vsitu As String Dim vsec As String Dim vrelab As String Dim vcat As String Dim vLargo As Integer Dim miFiltro As String 'Cogemos los valores que hayamos seleccionado como filtro vsitu = Nz(Me.CBOSITU.Value, "") vsec = Nz(Me.cbsec.Value, "") vrelab = Nz(Me.cbtipo.Value, "") vcat = Nz(Me.cbcat.Value, "") 'Inicilizamos el filtro miFiltro = "" 'Creamos la primera parte del filtro If vsitu <> "" Then miFiltro = "AND [situ]='" & vsitu & "'" End If If vsec <> "" Then miFiltro = "AND [sec]='" & vsec & "'" End If If vrelab <> "" Then miFiltro = "AND [tipo]='" & vrelab & "'" End If If vcate <> "" Then miFiltro = "AND [cate]='" & vcat & "'" End If 'Ahora cogemos la longitud del filtro vLargo = Len(miFiltro) 'Recomponemos el filtro eliminando el primer 'AND ' If vLargo > 0 Then miFiltro = Right(miFiltro, vLargo - 4) End If 'Aplicamos el filtro al formulario Me.Filter = miFiltro Me.FilterOn = True End Sub Private Sub cmdImprimir_Click() DoCmd.OpenReport "Infdatos2", acPreview, , Me.Filter End Sub
Buenas tardes:
Con vuestra ayuda he estado haciendo un formulario que tienen varios cuadros combinados que me sirven para filtarr y emitir un informe.
Pues bien, ahora me surge que en ocasiones necesito elegir dos valores que hay en el mismo cuadro combinado para que el filtro contenga esos dos valores
Investigando creo que la solución es hacerlo a traves de un cuadro de listra de selección multiple pero cuando cambio el cuadro combinado a cuadro de lista me deja seleccionar varios registro pero no me filtra. Entiendo que será que algo falla en el código pero no tengo ni idea... Si me podéis echar una mano
1 Respuesta
Respuesta de Sveinbjorn El Rojo
2