Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) colocar em ordem alfabética


Arrais Júnior

Pergunta

pessoal tenho uma programinha que faz os registros dos meus dvd's, ai tenho os componentes, adoquery, adotable, adoconnection, tenho um datasoucer, um dbgrid, e um dbnavegator...

eu usei um edit pra fazer filtragem por nome, outro edit pra fazer filtragem por artista....depois de descrever o básico, tipo....

eu queria que quando eu fosse add novos dvd's, mostrasse na dbgrid em ordem alfabética pelo nome (título), queria que sempre fosse exibido o bdgrid em ordem alfabética pelo nome!

outra coisa, queria saber como eu faço pro meu filtro ser AUTOMático, tipo....o meu eu tenho que apertar um botao pra fazer ele funcionar....queria um que apenas eu digitasse no edit e ele já fosse filtrando no dbgrid.

vlws ae

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
queria saber como eu faço pro meu filtro ser AUTOMático ....queria um que apenas eu digitasse no edit e ele já fosse filtrando no dbgrid.

select * from Nome_Da_Tabela
WHERE Nome_Do_Campo_Do_Banco LIKE :NOM
ORDER BY Nome_Do_Campo_Do_Banco  // Ordena alfabeticamente o conteudo do campo
coloque o codigo no evento OnChange do Edit1
procedure TForm1.Edit1Change(Sender: TObject);
begin
   Nome_Da_Tabela_IB.Active := false;
   CDS_Nome_Da_Tabela.Active := false;
   CDS_Nome_Da_Tabela.Params[0].AsString := '%'+Trim(Edit1.text)+'%';
   Nome_Da_Tabela_IB.Prepare;
   Nome_Da_Tabela_IB.Active := true;
   CDS_Nome_Da_Tabela.Active := true;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

ouw jhonas, pls, eu sou meiu burrão nisso...tipo

nome da tabela = adotable1 ou o nome mesmo do arquivo (cadastro)

o que é CDS?

o que é IB ?

tenho que deixar ambos? e os "_" deixo?

vlws, desculpa a ignorancia!

e..

select * from Nome_Da_Tabela

WHERE Nome_Do_Campo_Do_Banco LIKE :NOM

ORDER BY Nome_Do_Campo_Do_Banco // Ordena alfabeticamente o conteudo do campo

eu coloco isso onde? no evento de onde?

Editado por Arrais Júnior
Link para o comentário
Compartilhar em outros sites

  • 0

jhonas, desculpe, mais ainda assim continuo sem intender,

tipo, meu aplicativo eu já fiz e tals...eu criei, liguei os componentes e tals..

tou usando isso pra filtrar...

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

adotable1.Filtered := False;

adotable1.Filter := 'nomedofilme like ' + #39 + '%' + Edit1.Text + '%' + #39 ;

adotable1.Filtered := True;

end;

só que como você pode v eu tenho que clikar no botao,....

queria saber sobre esse comando que você passou..

procedure TForm1.Edit1Change(Sender: TObject);

begin

Nome_Da_Tabela_IB.Active := false;

CDS_Nome_Da_Tabela.Active := false;

CDS_Nome_Da_Tabela.Params[0].AsString := '%'+Trim(Edit1.text)+'%';

Nome_Da_Tabela_IB.Prepare;

Nome_Da_Tabela_IB.Active := true;

CDS_Nome_Da_Tabela.Active := true;

end;

o CDS é o que? o IB é o que? são nome. componentes, o que é isso? tipo, eu não sou de nomear componentes, tudo que eu coloco é o nome padrão...então, me mostra como fikaria o codigo mesmo, ai eu vejo e ajusto se necessário...o nome do banco feito no access é CADASTRO, existe um campo chamado NOMEDOFILME, então, usa os comandos com o nome padrão e se tiver que usar nome de campo, tu usa esse ai que vai ser mais fácil eu intender...

outra coisa..esse comando ai em cima eu coloco no onchange do edit1, e esse aki?

select * from Nome_Da_Tabela

WHERE Nome_Do_Campo_Do_Banco LIKE :NOM

ORDER BY Nome_Do_Campo_Do_Banco // Ordena alfabeticamente o conteudo do campo

coloco onde?

o bom de você colocar os comandos com os nomes padrões, porque eu vejo quais os componentes são usados e tals..

obrigadão e desculpa o trabalho...pelo visto só você que responde no forum...mais mesmo assim, obrigado..

Editado por Arrais Júnior
Link para o comentário
Compartilhar em outros sites

  • 0

Se voce leu o tutorial do ADO saberia como colocar os componentes e fazer os links

eu te passei somente um exemplo... não é para coloca-lo no seu codigo como esta, voce deve fazer as modificações que forem necessarias

select * from Nome_Da_Sua_Tabela

WHERE Nome_Do_Campo_Da_Sua_Tabela LIKE :NOM

ORDER BY Nome_Do_Campo_Da_Sua_Tabela // Ordena alfabeticamente o conteudo do campo

coloco onde?

O comando select ira dentro do componente ADOQuery .... o que voce entende por Nome_da_sua_tabela ou Nome_do_campo_da_sua_tabela ?

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
adotable1.Filtered := False;
adotable1.Filter := 'nomedofilme like ' + #39 + '%' + Edit1.Text + '%' + #39;
adotable1.Filtered := True;
end;

se voce consegue filtrar os registros desta maneira então use o mesmo codigo dentro do Edit1 no evento OnChange

e veja o que acontece

Procure utilizar a pesquisa do forum ... já temos varios posts respondidos com a sua duvida

exemplo: procure pelas palavras ADO, SQL, Select, Pesquisa , Access ... entre outras ... voce vai conseguir tirar muitas das suas duvidas.

Lembre-se ... Um Bom Programador .... é sinônimo de muita leitura e anos de testes práticos

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

vlw Jhonas, tipo, eu tento cara, eu pesquiso muito antes de postar, o pro cara, É que não

existe tutorial para leigos, e eu sou um leigo no assunto, apesar de tudo, eu vou juntando os

quebra-cabeças e vou fazendo as coisas, tipo, o negocio de colocar o filtro que tava no

botão....agora coloquei no edit e deu certo, ...agora eu já aprendi isso...se você não tivesse

falado ..nunca eu iria saber....o que quero dizer é isso..tudo que eu pergunto, eu aprendo e

pode ter certeza que eu não esqueço... só tem que ter um pouko de calma comigo!

sim..continuando..a questão do filtro já foi feita, só tem um unico problema, quando eu vou

escrevendo, vai filtrando, só que quando eu dou backspace e apago tudo, dar um errinho e

tals, como se não pudesse filtrar “nada”, tem como eu alterar pra o meu comando ignorar isso?

novamente sobre por em ordem, eu olhei o adoquery, mais ainda não sei onde colocar o

comando de select, é em que evento?...eu intendo por nome da tabela = pra falar a verdade

eu não intendo, huauhauh eu sempre testo o que tem algo com tabela, no caso...adotable1 ou

“cadastro.mdb” É algum dos dois? e nome do campo, eu acho que seja o nome do campo que eu

estabeleci quando montei a tabela no access, no caso montei um campo chamado de

“nomedofilme” e um outro de “duracao” ...

vlws,

Favor atentar para as regras do forum:

3.7 Ao postar uma mensagem, procure usar o tamanho de fonte padrão do fórum, não deixando as letras grandes ou pequenas demais; evite o uso de cores fortes, as quais prejudicam a leitura, e não insira textos totalmente em caixa alta (ESTE É UM TEXTO EM CAIXA ALTA). Tópicos que violaremm essa regra serão editados sem prévio aviso.

Jhonas

Link para o comentário
Compartilhar em outros sites

  • 0
o erro de quando eu apago tudo do edit onde tah filtrando é esse

project project1.exe raised exception class EOleException with message 'Os argumentos são incorretos, estão fora do intervalo ou estão em conflito'. Process stopped. use Step or Run to continue.

Faça uma verificação no edit, se nada for digitado então não executa o comando

ex:

if edit1.text = '' then

exit;

outra coisa jhonas, tipo, só por questão de besteira mesmo, tipo, eu uso um dbcontrole, pra fikar indo pra ultima, primeira, proxima anterior, deletar, editar salvar...quando eu deleto uma, aparece uma pergunta se eu quero mesmo deletar...tem como eu editar akela pergunta?

Arrais ... peço a voce que faça uso da pesquisa do forum, pois como já disse, voce vai solucionar muitas das suas duvidas, uma vez que já existem posts respondidos com a mesma duvida ... ok

se voce procurasse pela palavra "tradução" acabaria encontrando este post

http://scriptbrasil.com.br/forum/index.php...st&p=443189

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

vlws, o negocio do

if edit1.text = '' then

exit;

adotable1.Filter := 'nome like ' + #39 + '%' + Edit1.Text + '%' + #39 ;

adotable1.Filtered := True;

ficou assim....tah dando certo! :)

o negocio de deletar e mudar a tradução li, mais não acho q não seja tão preciso agora! :) obrigado..

vlws, pode fechar esse tópico. :)

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...