Jump to content
ijaera

Filtrar DBGrid usando combobox

Recommended Posts

Galera, é o seguinte, eu preciso de filtrar os dados de um DBGRid, sendo que essa filtragem se dará a pessoa selecionando as informações que deseja filtrar em Combobox e dps de selecionar tudo clica em filtrar e o Grid aparece com tudo filtrado, acontece que de vez em quando não serão usados todos os critérios na hora de filtrar. Alguém sabe como posso fazer isso?

Lembrando que os combobox serão para dados tipo Sexo, Idade, Escolaridade

Share this post


Link to post
Share on other sites

Primeiramente você vai utilizar Filter ou SQL!? SQL é bem melhor, é mais flexível do que o filter...

 

Quando precisei disso eu fiz usando SQL e simplesmente toda vez que trocava o valor de qualquer um dos ComboBox, construia a sintaxe SQL somente com os texts dos que existiam dados, ou seja, if comboBox.Text <> '' ele entrava na sintaxe.

 

Se precisar de mais alguma ajuda pode me falar que eu te ajudo ok?

Share this post


Link to post
Share on other sites

Olá Jerf Sousa, eu também estou precisando dessa força. Estou quase conseguindo, mas falta o ponta pé final.

 

Veja só, tenho um formulário de pesquisa com um combobox, um speedbuton e um dbgrid.

 

No comobobox estou relacionando as escolas de uma tabela:

CÓDIGO:

procedure TfrmConTurmasPorEscola.FormShow(Sender: TObject);
begin
dm_dadosSeduc.sql_conEscolaOrgao.Close;
dm_dadosSeduc.sql_conEscolaOrgao.Open;
ComboBox1.Items.Clear;
While not dm_dadosSeduc.sql_conEscolaOrgao.Eof do
begin
ComboBox1.Items.Add(dm_dadosSeduc.sql_conEscolaOrgao.fieldbyname('esc_nome').AsString);
dm_dadosSeduc.sql_conEscolaOrgao.Next;
end;
end;

 

(ESTÁ FUNCIONANDO DIREITINHO)

 

No speddbuton tenho um código que lista as turmas da escola (que estão em outra tabela) num DBGrid:

CÓDIGO:

procedure TfrmConTurmasPorEscola.btnPesquisarClick(Sender: TObject);
begin
With dm_dadosSeduc.sql_conTurmasPorEscola do
begin
Close;
SQL.Clear;
SQL.Add('select turm_escola, turm_serieAno, turm_turma, turm_etapa, turm_nAlunos');
SQL.Add('from turmas');
Open;
end;
end;

(TAMBÉM ESTÁ FUNCIONANDO DIREITINHO)

 

O que não estou conseguindo fazer é FILTRAR as turmas que aparecem no DBGrid de acordo com as escola selecionada no ComboBox.

 

Já procurei em todo lugar mas não consegui, se poder me ajudar agradeço bastante.

 

Sou professor de escola pública e quero desburocratizar os processos administrativos da minha escola.

 

Um abrçao.

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Qual a estrutura das tabelas envolvidas? E o filtro seria aplicado a partir do nome da escola ou o código dela no sistema?

  • +1 1

Share this post


Link to post
Share on other sites

Boa tarde, gente!

Também preciso de fazer a mesma coisa, mas no meu caso não é através de banco de dados e sim um documento txt. A diferença que eu estou usando o Memo para exibir os dados. Alguém pode me ajudar? Estou precisando disso com urgência e não consigo avançar.Obrigada!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.