Possuo um Form para fazer FILTROS numa tabela, neste FORM existem 6 COMBOS os quais 1 para cada campo da Tabela e cada COMBO possue inúmeros itens os quais serão a base para o FILTRO, meu código, de inicio está assim como mostrado abaixo, ENORME e nem sei quando irei terminá-lo. gostaria de saber se existe outra forma de fazer estes filtros, sendo que, da forma que estou fazendo precisarei saber todas as combinações possíveis que possam acontecer, assim:
1 - combo 1 <> todos
2 - combo 2 <> todos
3 - combo 3 <> todos
4 - combo 4 <> todos
5 - combo 5 <> todos
6 - combo 6 <> todos
7 - combos 1 e 2 <> todos
8 - combos 1 e 3 <> todos
9 - combos 1 e 4 <> todos ...
A linha de raciocinio é a seguinte: a combo que tiver a propriedade TEXT <> de TODOS deve ser filtrada o campo a que se refere na tabela com a PALAVRA ou item que aparece na COMBO, ou seja, o valor escolhido pelo usuário
Private Sub FILTROS()
If Combo_situacao = "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente <> "TODOS" Then
With rs_relatorio
.Filter = " nome like '" & Combo_proponente & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório Individual"
End If
If Combo_situacao = "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio <> "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " municipio like '" & Combo_municipio & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Município"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_municipio.Text
End If
If Combo_situacao = "TODOS" And _
Combo_atividade <> "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " ATIVIDADE like '" & Combo_atividade & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Atividade"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_atividade.Text
End If
If Combo_situacao = "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista <> "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " projetista like '" & Combo_projetista & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Projetista"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_projetista.Text
End If
If Combo_situacao = "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa <> "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " porte like '" & Combo_programa & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Programa"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_programa.Text
End If
If Combo_situacao <> "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " situacao like '" & Combo_situacao & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Situação"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_situacao.Text
End If
If Combo_situacao <> "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio <> "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " situacao like '" & Combo_situacao & "'and municipio like '" & Combo_municipio & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Município/Situação"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_municipio & " / " & Combo_situacao
End If
If Combo_situacao <> "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista <> "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " situacao like '" & Combo_situacao & "'and projetista like '" & Combo_projetista & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Projetista/Situação"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_projetista & " / " & Combo_situacao
End If
If Combo_situacao <> "TODOS" And _
Combo_atividade <> "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " situacao like '" & Combo_situacao & "'and atividade like '" & Combo_atividade & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Atividade/Situação"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_atividade & " / " & Combo_situacao
End If
If Combo_situacao <> "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa <> "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " situacao like '" & Combo_situacao & "'and porte like '" & Combo_programa & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Programa/Situação"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_programa & " / " & Combo_situacao
End If
If Combo_situacao = "TODOS" And _
Combo_atividade <> "TODOS" And _
Combo_projetista <> "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " atividade like '" & Combo_atividade & "'and projetista like '" & Combo_projetista & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Projetista/Atividade"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_projetista & " / " & Combo_atividade
End If
If Combo_situacao = "TODOS" And _
Combo_atividade <> "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio <> "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " atividade like '" & Combo_atividade & "'and municipio like '" & Combo_municipio & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Município/Atividade"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_municipio & " / " & Combo_atividade
End If
If Combo_situacao = "TODOS" And _
Combo_atividade <> "TODOS" And _
Combo_projetista = "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa <> "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " atividade like '" & Combo_atividade & "'and porte like '" & Combo_programa & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Programa/Atividade"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_programa & " / " & Combo_atividade
End If
If Combo_situacao = "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista <> "TODOS" And _
Combo_municipio <> "TODOS" And _
Combo_programa = "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " projetista like '" & Combo_projetista & "'and municipio like '" & Combo_municipio & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Município/Projetista"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_municipio & " / " & Combo_projetista
End If
If Combo_situacao = "TODOS" And _
Combo_atividade = "TODOS" And _
Combo_projetista <> "TODOS" And _
Combo_municipio = "TODOS" And _
Combo_programa <> "TODOS" And _
Combo_proponente = "TODOS" Then
With rs_relatorio
.Filter = " projetista like '" & Combo_projetista & "'and porte like '" & Combo_programa & "'"
End With
Rpt_projetos.Sections("Section2").Controls.Item("Label_cima").Caption = "Relatório de Projetos por Projetista/Programa"
Rpt_projetos.Sections("Section2").Controls.Item("Label_baixo").Caption = Combo_projetista & " / " & Combo_programa
End If
End Sub
Espero que exista saida para um caso desses...
Obrigado a todos pela atenção a mais esta questão VB
Pergunta
Macêdo
Pessoal, minha situação é a seguinte:
Possuo um Form para fazer FILTROS numa tabela, neste FORM existem 6 COMBOS os quais 1 para cada campo da Tabela e cada COMBO possue inúmeros itens os quais serão a base para o FILTRO, meu código, de inicio está assim como mostrado abaixo, ENORME e nem sei quando irei terminá-lo. gostaria de saber se existe outra forma de fazer estes filtros, sendo que, da forma que estou fazendo precisarei saber todas as combinações possíveis que possam acontecer, assim:
1 - combo 1 <> todos
2 - combo 2 <> todos
3 - combo 3 <> todos
4 - combo 4 <> todos
5 - combo 5 <> todos
6 - combo 6 <> todos
7 - combos 1 e 2 <> todos
8 - combos 1 e 3 <> todos
9 - combos 1 e 4 <> todos ...
A linha de raciocinio é a seguinte: a combo que tiver a propriedade TEXT <> de TODOS deve ser filtrada o campo a que se refere na tabela com a PALAVRA ou item que aparece na COMBO, ou seja, o valor escolhido pelo usuário
Espero que exista saida para um caso desses...
Obrigado a todos pela atenção a mais esta questão VB
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.