Está en la página 1de 3

Private Sub cmdFiltrar_Click()

'Creamos la variable que contendr la combinacin de todos los filtros


Dim sFiltro As String
'Creamos una variable para guardar el filtro por proyecto
Dim sFiltro1 As String
'Creamos una variable para guardar el filtro por cliente
Dim sFiltro2 As String
'Creamos una variable para guardar el filtro por tipo
Dim sFiltro3 As String
'Creamos una variable para guardar el filtro por cotizacion
Dim sFiltro4 As String
'Creamos una variable para guardar el filtro por cotizacion
Dim sFiltro5 As String
'Y por ltimo creamos la variable para guardar el filtro por fecha
Dim sFechaCalificacion As String
'Construyo la cadena para filtrar por proyecto
If Not IsNull(Me.txtProyecto) And Me.txtProyecto <> "" Then
sFiltro1 = "Proyectos LIKE '*" & Me.txtProyecto & "*'"
Else
sFiltro1 = ""
End If
'Construyo la cadena para filtrar por cliente
If Not IsNull(Me.txtCliente) And Me.txtCliente <> "" Then
sFiltro2 = "Cliente LIKE '*" & Me.txtCliente & "*'"
Else
sFiltro2 = ""
End If
'Construyo la cadena para filtrar por tipo
If Not IsNull(Me.txtTipo) And Me.txtTipo <> "" Then
sFiltro3 = "Tipo LIKE '*" & Me.txtTipo & "*'"
Else
sFiltro3 = ""
End If
'Construyo la cadena para filtrar por cotizacion
If Not IsNull(Me.txtCotizacion) And Me.txtCotizacion <> "" Then
sFiltro4 = "Cotizacion LIKE '*" & Me.txtCotizacion & "*'"
Else
sFiltro4 = ""
End If
'Construyo la cadena para filtrar por cotizacion
If Not IsNull(Me.txtProveedor) And Me.txtProveedor <> "" Then
sFiltro5 = "Proveedor LIKE '*" & Me.txtProveedor & "*'"
Else
sFiltro5 = ""
End If
'Construyo la cadena para filtrar por Fecha
If IsNull(Me.txtFechaInicio) And IsNull(Me.txtFechaFin) Then
sFechaCalificacion = ""
Else
sFechaCalificacion = "Fecha BETWEEN #" & Format(Nz(Me.txtFechaInicio, #1
/1/1900#), "mm-dd-yyyy") & _
"# AND #" & Format(Nz(Me.txtFechaFin, #12/31/9999#), "mm-ddyyyy") & "#"

End If
'*************************************************************************
' Segn estn vacas o no las distintas variables (Filtros)
' construyo el filtro final que se enviar al subformulario.
' Lo que hacemos es combinarlos con "AND"
'*************************************************************************
If sFiltro1 <> "" Then
sFiltro = sFiltro1
End If
If sFiltro2 <> ""
If sFiltro <>
sFiltro =
Else
sFiltro =
End If
End If

Then
"" Then
sFiltro & " AND " & sFiltro2

If sFiltro2 <> ""


If sFiltro <>
sFiltro =
Else
sFiltro =
End If
End If

Then
"" Then
sFiltro & " AND " & sFiltro2

If sFiltro3 <> ""


If sFiltro <>
sFiltro =
Else
sFiltro =
End If
End If

Then
"" Then
sFiltro & " AND " & sFiltro3

If sFiltro4 <> ""


If sFiltro <>
sFiltro =
Else
sFiltro =
End If
End If

Then
"" Then
sFiltro & " AND " & sFiltro4

If sFiltro5 <> ""


If sFiltro <>
sFiltro =
Else
sFiltro =
End If
End If

Then
"" Then
sFiltro & " AND " & sFiltro5

sFiltro2

sFiltro2

sFiltro3

sFiltro4

sFiltro5

If sFechaCalificacion <> "" Then


If sFiltro <> "" Then
sFiltro = sFiltro & " AND " & sFechaCalificacion
Else
sFiltro = sFechaCalificacion
End If
End If

'Una vez compuesta la variable sFiltro podemos verla en la ventana


'inmediato para verificar que lo estamos haciendo bien
Debug.Print sFiltro
'Y a partir de aqu, si la variable sFiltro no est vaca
'se la aplicamos al subformulario
If sFiltro <> "" Then
'Asignamos la varaible a la propiedad Filter del subformulario
Me.BOILER.Form.Filter = sFiltro
'Le decimos al subformulario que active el filtro
'que previamente hemos asignado.
Me.BOILER.Form.FilterOn = True
Else
'Si la variable est en blanco nos indica que no hay
'seleccionados ningn filtro y por tanto lo desactivamos
Me.BOILER.Form.FilterOn = False
End If
End Sub
Private Sub cmdQuitarFiltro_Click()
'Para eliminar el filtro lo dejamos en blanco con ""
Me.BOILER.Form.Filter = ""
'A continuacin desactivamos el filtro
Me.BOILER.Form.FilterOn = False
'Y para rematar, los cuadros de bsqueda del formulario
'los ponemos en blanco para que podamos filtrar por
'otro trmino. Esto ya es opcional.
Me.txtProyecto = Null
Me.txtCliente = Null
Me.txtTipo = Null
Me.txtCotizacion = Null
Me.txtProveedor = Null
Me.txtFechaInicio = Null
Me.txtFechaFin = Null
End Sub

También podría gustarte