Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EduardoNogueira

Consulta refinada

Recommended Posts

Estou programando à pouquíssimo tempo em Delphi e estou tentando colocar num sistema q estou desenvolvendo (ou tentando, hehe) uma consulta que é feita pela seguinte maneira:

 

Para cada tabela (DBGrid) de um form eu tenho uma opção de busca que é assim:

 

1º Seleciona-se num combobox qual campo da tabela deseja-se procurar (ou seja, qual atributo);

 

2º Seleciona-se um critério em outro combobox, cujas opções serão: igual, maior, menor, diferente;

 

3º Por fim, o usuário especifica um valor, o qual será procurado no campo selecionado e de acordo com o critério escolhi nos combobox anteriores.

 

Abaixo segue uma screen que exibe parte de um dos muitos forms deste sistema que possui esta consulta, a diferença é que são em tabelas diferentes. Cada form com uma tabela específica.

 

Imagem Postada

 

Nome dos componentes envolvidos:

 

Colunas -> ComboBox2

Critérios -> ComboBox1

Valor -> Edit2

Procurar -> BitBtn2

Tabela -> DBGrid1

Navegador -> DBNavigator1

 

O banco de dados (ou quase) que estou utilizando é o MS Access 2000. O nome da tabela criada no Access a qual é acessada pelo Delphi é a Produto. Os componentes usados para ligar o Delphi e o Access são: DataSource1, ADOConnection1 e ADOTable1.

 

Os atributos da tabela Produto e que poderão todos serem selecionados para que o sistema possa efetuar busca nos mesmos são:

 

cod_prod -> Código

nome_prod -> Nome

descr_prod -> Descrição

unid_prod -> Unidade

data_cad_prod -> Data de Cadastro

obs_prod -> Observações

 

Enfim colegas, repetindo o que disse no início, programo em Delphi há pouquíssimo tempo, mas preciso colocar esta brincadeira de busca pra funcionar, então vim pedir o auxílio de vocês que são mais experientes do que eu nesta ferramenta.

 

Qual é exatamente a codificação para esta consulta funcionar??

 

Muuuuuuito grato! http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pelo que eu entendi você que uma coisa assim:

 

Select * from NomeDaTabela

where ' + ComboBox2(Colunas ou nome dos campos) + ' ' + ComboBox1(Criterios) + ' ' + Edit2.text(Valor a Buscar) + ' Order By ' + ComboBox2(Colunas ou nome dos campos)

 

eu acho que é isso ai espero que ajude a esclarecer um pouco sua duvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pelo que eu entendi você que uma coisa assim:

 

Select * from NomeDaTabela

where ' + ComboBox2(Colunas ou nome dos campos) + ' ' + ComboBox1(Criterios) + ' ' + Edit2.text(Valor a Buscar) + ' Order By ' + ComboBox2(Colunas ou nome dos campos)

 

eu acho que é isso ai espero que ajude a esclarecer um pouco sua duvida.

<{POST_SNAPBACK}>

Melhor fazer uma busca simples...imagine, uma consulta com um edit e um bitbtn, o usuário digita qualquer coisas no edit, clica no bitbtn e lá vai o resultado aparecendo no DBGrid...apenas isso.

 

Usando os componentes DataSource1, ADOConnection1, ADOTable1 e ADOQuery1 (estam certos?!). O código deve estar dentro do bitbtn "Procurar". A tabela é Produto.

 

Pensei em algo do tipo:

 

SELECT *

FROM PRODUTO

WHERE ...

 

Tô cheio de apostilas aqui, mas não sei fazer essa parada... alguém me diz o código certinho pra eu colocar dentro do bitbtn aí!!! http://forum.imasters.com.br/public/style_emoticons/default/cry.gif http://forum.imasters.com.br/public/style_emoticons/default/cry.gif http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, segue o código abaixo desta consulta:

 

adotable1.filter := combobox2.text + ' ' + combobox1.text + ' ' + edit2.text;

adotable1.filtered := true;

adotable1.close;

adotable1.open;

 

Um colega aqui do fórum me passou via MSN e funcionou perfeitamente.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.