Inquiridor
Como criar uma consulta com filtros??

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