FabioPaes 14/3/2017, 14:39
Então, o filtro que precisa construir deve ser aplicado em 3 Campo, certo?
Da forma como você fez, ele aplica os valores na variável 3x, mas sempre sobrescreve o valor que ja tem na variável... Dessa forma ao final a variável F1 so terá o valor de um único Campo que no caso é o Contrato... ja que ele é o ultimo a ser enviado.
Veja um exemplo de aplicação de filtro no seu caso...
Obs: Fiquei perdido quanto as datas... estou partindo da ideia que quer que o Período Inicial seja entre as duas datas e o Período Final também!
Coloque no evento Apos atualizar da sua comboBox:
- Código:
Private Sub EsolheFiltroPeriodo_AfterUpdate()
Dim F As String
F = "[Periodo_Inicial] between #" & Format(Me.EsolheFiltroPeriodo.Column(1), "mm/dd/yyyy") & "# AND #" & Format(Me.EsolheFiltroPeriodo.Column(2), "mm/dd/yyyy") & "# "
F = F & "AND [Periodo_Final] between #" & Format(Me.EsolheFiltroPeriodo.Column(1), "mm/dd/yyyy") & "# AND #" & Format(Me.EsolheFiltroPeriodo.Column(2), "mm/dd/yyyy") & "# "
F = F & "AND [Contrato] Like '*" & Me.EsolheFiltroPeriodo.Column(0) & "*'"
Me!FICHA_FINANCEIRA_SUB.Form.Filter = F
Me!FICHA_FINANCEIRA_SUB.Form.FilterOn = True
End Sub
Observe que para cada campo a variável F assume o valor dela mesmo (para acumular os valores)
Ja lhe adianto, dessa forma não terá o resultado esperado:
"[Periodo_Inicial] Like '*" & Me.FiltroPeriodoInicial & "*' pois como terá a data completa o * antes e depois * não adianta, entao o resultado será o mesmo que se colocar
Periodo_Inicial=xxxx.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!