locked
Como criar uma consulta com filtros?? RRS feed

  • Pergunta

  • Pessoal, estou a algumas semanas procurando material na internet para tentar solucionar o meu problema e ainda não encontrei então estou aki no fórum para tentar uma ajuda.

    Vou tentar ser o mais detalhista possível para ser claro sobre o que estou tentando fazer.


    Tenho um Formulario no Access que eu preciso Filtrar alguns dados e apresentá-los em forma de uma tabela.

    Como podem ver na Imagem existe 2 radio button, uma para linhas e outro para Filial.

    Selecionando o Radio button LINHAS pode-se filtrar por mês e operadora e após clicar no botão Filtrar apresentar o resultado no sub form abaixo apresentando da seguinte forma.

    Filial | Linha | Valor | Mês | Operadora  - sendo que Filial tem que ser apresentada assim, todas as filiais SJK primeiro, depois todas as SP e etc.


    Agora selecionando o Radio button FILIAL pode-se filtrar por mês e operadora e após clicar no botão Filtrar apresentar o resultado no sub form abaixo apresentando da seguinte forma.

    Filial | Valor | Mês | Operadora - sendo que Filial será agrupada e o valor será somado, todos os valores referentes serão somados de acordo com a filial
    • Editado Sousa.th sexta-feira, 12 de junho de 2009 18:37
    terça-feira, 9 de junho de 2009 14:05

Todas as Respostas

  • Você poderá fazer isso colocando no evento OnClique do botão Filtrar alguma coisa parecida com esta:


    Dim stSQL as string

    se o radio butom do rateio por linhas estiver selecionado...
        stSQL = "select ... from ..."
    senão
       se o radio butom do rateio por filial estiver selecionado...

          stSQL = "select ... from ... GROUP BY ..."




    forms![Nome do subform].form.recordsource = stSQL
    forms![Nome do subform].form.requery


    Amigo,

    sem saber nomes de campos, etc, fica difícil ajudar mais, mas se precisar posta aqui, ok?

     

    pelo que percebi, quando selecionar filial vc vai agrupar por filial, por isso o GROUP BY...

     

    espero ter ajudado.

    terça-feira, 9 de junho de 2009 17:22
  • Valmir, eu sei como fazer o sql... só não sei a sintaxe do vba...

    os campos serão os seguintes....

    radio button 1 = rateio linhas
    radio button 2 = rateio filial

    Teria que fazer um If para checar os radio button né??

    como seria isso??
    seria como fiz abaixo?

    Dim stSQL As String
    If Me.Rateio_Linhas.Value = "verdadeiro" Then (***)
    stSQL = "SELECT Filial, Linha,  Valor,  Mês, Operadora FROM Contas ORDER BY Filial"
    Else
    If Me.Rateio_Filial.Value = "verdadeiro" Then (***)
    stSQL = "SELECT Filial, (SUM)Valor,  Mês, Operadora FROM Contas GROUP BY Filial"

    Forms![Consulta_subformulário1].Form.RecordSource = stSQL
    Forms![Consulta_subformulário1].Form.Requery
    End Sub

    (***)(COMO SERIA A DECLARAÇÂO PARA VER SE O RADIO BUTTON ESTÁ SELECIONADO??)


    terça-feira, 9 de junho de 2009 18:54
  • Amigo,

    o radio buton retorna um valor booleano, sendo assim, basta testar pela propriedade "value" do radio, por exemplo:

    digamos que os nomes dos radios que vc criou sejam rbtLinas e rbtFilial, abaixo eu testo se eles estão ou não selecionados...

       If Me.rbtLinhas.Value Then
          MsgBox "rbtLinhas selecionado!"
       End If
       If Me.rbtFilial.Value Then
          MsgBox "rbtFilial selecionado! "
       End If


    só tenha um cuidado: Tenha certeza de que eles não estão sem seleção alguma, porque nesse caso dará erro, inicie o formulário colocando um valor padrão para eles, vc pode atribuir falso à um e verdadeiro ao outro...

    Espero ter ajudado!

    quarta-feira, 10 de junho de 2009 10:58