Duda código vba valor booleano
Estoy diseñando un formulario que realiza varios filtros.
Contiene los campos "Nom unitat vigent", "Serie documental", "Any final" y "Per eliminar".
Los campos "Nom unitat vigent" y "Serie documental" son de texto, cuyos valores el usuario selecciona mediante un cuadro combinado.
El campo "Any final" es un cuadro de texto sobre el que el usuario escribe una fecha.
El campo "Per eliminar" es un campo con un valor booleano (Sí/No), que el usuario tiene la opción de marcar.
Siguiendo la guía de Sveinbjorn El Rojo con la Base de datos Multifiltro hice el siguiente código para el filtro:
Private Sub Comando50_Click()
Dim Serie_documental As String
Dim Nom_unitat_vigent As String
Dim Check As String
Dim miFiltro As String
Serie_documental = Nz(Me.Cuadro_combinado41.Value, "")
Nom_unitat_vigent = Nz(Me.Cuadro_combinado39.Value, "")
Check = Nz(Me.Per_eliminar.Value, "")
If Serie_documental <> "" Then
Serie_documental = Replace(Serie_documental, "'", "''")
miFiltro = "[Serie documental vigent]='" & Serie_documental & "'"
End If
If Nom_unitat_vigent <> "" Then
Nom_unitat_vigent = Replace(Nom_unitat_vigent, "'", "''")
miFiltro = miFiltro & " AND [Nom unitat vigent] ='" & Nom_unitat_vigent & "'"
End If
If Check <> "" Then
miFiltro = miFiltro & " AND [Per eliminar]=" & Check
End If
miFiltro = miFiltro & " AND ([Any final]<=#" & Me.Texto44 & "#)"
'MsgBox miFiltro
Me.Filter = miFiltro
Me.FilterOn = True
Realiza todos los filtros correctamente menos el filtro correspondiente a:
If Check <> "" Then
miFiltro = miFiltro & " AND [Per eliminar]=" & Check
End If
No sé porqué motivo hace el filtro al revés, es decir, me filtra los registros que no tienen marcados los casillas Si/No del campo "Per eliminar", cuando yo quiero que filtre los que sí están marcados.
¿Alguien sabe qué pasa?