Boa tarde,
Estou construindo uma aplicação e vou usar filtragens para alguns campos, para isso usei um exemplo no aplicativo Maestro do Avelino Sampaio, do formulário FiltraFormContinuo. No exemplo dele... ele filtra apenas datas e textos, e eu tenho uma combobox para usar como filtro junto as caixas de textos,
será que temos alguma forma de adaptar a expressão para usar com combobox?
Estou construindo uma aplicação e vou usar filtragens para alguns campos, para isso usei um exemplo no aplicativo Maestro do Avelino Sampaio, do formulário FiltraFormContinuo. No exemplo dele... ele filtra apenas datas e textos, e eu tenho uma combobox para usar como filtro junto as caixas de textos,
será que temos alguma forma de adaptar a expressão para usar com combobox?
- Código:
Public Function fncFiltrar(NomeCampoFoco As String)
Dim x As String, filtro As String, strSplit As String
Dim f(5) As String, cp(5) As Variant
Dim k As Variant, p As Byte
Dim booFiltro As Boolean, booPos As Boolean
x = Me(NomeCampoFoco).Text
p = 0
For p = 0 To 4
cp(p) = IIf(InStr(NomeCampoFoco, "tx" & p + 1) > 0, x, Me("tx" & p + 1))
Next
Str (Fun_Matricula)
Str (Combinação16.Column(0))
f(0) = IIf(cp(0) = Chr(32), "Fun_Matricula is null", "Fun_Matricula Like '*" & cp(0) & "*'")
f(1) = IIf(cp(1) = Chr(32), "Fun_Nome is null", "Fun_Nome Like '*" & cp(1) & "*'")
f(2) = IIf(cp(2) = Chr(32), "Car_Nome is null", "Car_Nome Like '*" & cp(2) & "*'")
f(3) = IIf(cp(3) = Chr(32), "Cdc_Nome is null", "Cdc_Nome Like '*" & cp(3) & "*'")
f(4) = IIf(cp(4) = Chr(32), "Lio_Codigo is null", "Lio_Codigo Like '*" & cp(4) & "*'")
strSplit = Len(cp(0) & "") & "|" & Len(cp(1) & "") & "|" & Len(cp(2) & "") & "|" & Len(cp(3) & "" & Len(cp(4) & "" & "|"))
k = Split(strSplit, "|")
filtro = ""
p = 0
For p = 0 To UBound(k)
If Val(k(p)) > 0 Then
If booPos = False Then
filtro = f(p): booPos = True
Else
filtro = filtro & " AND " & f(p)
End If
booFiltro = True
End If
Next p
Me.Filter = filtro
Me.FilterOn = booFiltro
Me(NomeCampoFoco) = x
If booFiltro Then
Me(NomeCampoFoco).SelStart = Len(x & "")
Else
Me(NomeCampoFoco).SetFocus
End If
End Function