schaukoski Postado Novembro 14, 2006 Denunciar Share Postado Novembro 14, 2006 Ola !Estou com dúvidas.Como faço para meu Edit, onchange, Fazer uma busca no meu banco de dados, e mostrar na tabela, por ordem?esse é meu programa..eu quero que quando o cara digitar a letra M pro exemplo, se estiver checked no Nome, que mostre todos os nomes com M em ordem....ai se ele digitar MA..aaparecer todos os nomes que comecarem com MA...uma busca entende?obrigado!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tiagojacomini Postado Novembro 14, 2006 Denunciar Share Postado Novembro 14, 2006 na sua query você deve colocar o campo que você quer pesquisarex."SELECT CLIENTES.NOME , CLIENTES.ENDERECOFROM CLIENTESWHERE CLIENTES.NOME LIKE :PESQUISA"depois no onChange do Edit você fazTabela.Close;Tabela.ParamByName('PESQUISA').AsString := Edit1.Text + '%';Tabela.Open;ou ao invés de fechar e abrir a tabela você pode usar o LocateTabela.Locate('NOME', Edit1.Text [loPartialKey, loCaseInsensitive]);e por ai vai....espero ter ajudado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Novembro 14, 2006 Autor Denunciar Share Postado Novembro 14, 2006 então...eu não uso SQl, to usando ADO com access....e aquele Tabela, seria meu Grid?não intendi muito bem ;...eu tenho meu Grid conectado com o meu banco de dados.nada mais alem disso..tem como você explicar mais detalhadamente?! vlw !!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tiagojacomini Postado Novembro 14, 2006 Denunciar Share Postado Novembro 14, 2006 não a Tabela ali seria o AdoQuery, AdoDataSet, AdoTable esse é somente o nome que eu dei para a tabela em questãomas já que você não usa SQL você pode passar LOCATE vamos supor que eu esteja usando uma AdoTableAdoTable.Locate('NOMEDOCAMPO', Edit1.Text, [loPartialKey, loCaseInsensitive]);essa função "Locate" localiza os registros na tabela de acordo com o "Edit1.Text" .já as opções de Locate, aquelas que estão dentro das chaves [], são para pesquisa incremental (loPartialKey) ou seja cada tecla que você pressionar ele vai filtrando, e para pesquisa em ambos CharCase (loCaseInsensitive), você pesquisa tanto letras minusculas quanto maíusculas ele trata de uma maneira só...abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 14, 2006 Denunciar Share Postado Novembro 14, 2006 não a Tabela ali seria o AdoQuery, AdoDataSet, AdoTable esse é somente o nome que eu dei para a tabela em questãomas já que você não usa SQL você pode passar LOCATE vamos supor que eu esteja usando uma AdoTableAdoTable.Locate('NOMEDOCAMPO', Edit1.Text, [loPartialKey, loCaseInsensitive]);essa função "Locate" localiza os registros na tabela de acordo com o "Edit1.Text" .já as opções de Locate, aquelas que estão dentro das chaves [], são para pesquisa incremental (loPartialKey) ou seja cada tecla que você pressionar ele vai filtrando, e para pesquisa em ambos CharCase (loCaseInsensitive), você pesquisa tanto letras minusculas quanto maíusculas ele trata de uma maneira só...abraçosOlá tiagojacomini,O Locate não filtra os registros, ele apenas leva o foco ao primeiro que ele encontra de acordo com a pesquisa. Ele poderia usar o ADOQuery mesmo.então...eu não uso SQl, to usando ADO com access....e aquele Tabela, seria meu Grid?não intendi muito bem ;...eu tenho meu Grid conectado com o meu banco de dados.nada mais alem disso..tem como você explicar mais detalhadamente?! vlw !!!schaukoski,então coloque o nome de sua tabela, nome dos campos, ect...pra fazer do jeito que tem que ser.Abs. Progr'amador. B) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Novembro 14, 2006 Denunciar Share Postado Novembro 14, 2006 sim OK... esotu em outro pc agora..schaukoski Aqui.eu acesso o dbgrid por um datamodule chamado dmDatadetro dele tem um TADOTable, e o DataSource...apenas isso que tenho.. n tenho o Query... tenho que adicionálo?temcomo vocês colocarem um exemplo?preciso colokar mais um table, no meu form, ou da pra acessa pelo datamodule mesmo?dmData.atclientes atclientes é meu Tablee dsclientes é meu datasource...to usando u edit normal como edit1acho que só...brigadao!!!!!!!!!!!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Progr'amador Postado Novembro 16, 2006 Denunciar Share Postado Novembro 16, 2006 Olá,Adicione um ADOQueryE no onChange coloque: with dmData.ADOQuery do begin SQL.Clear; SQL.Add('select * from NOME_DA_TABELA Where CAMPO_NOME Like '+''''+Trim(Edit1.Text)+'%'+''''+''); SQL.Add('Order By CAMPO_NOME'); Open; end;E levando em consideração a ideia do colega tiagojacomini, acredito que realmente você possa usar o LOCATE sim.Abs. Progr'amador. B) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Novembro 16, 2006 Autor Denunciar Share Postado Novembro 16, 2006 eu tentei o seguinte procedure TFormPrincipal.LabeledEdit1Change(Sender: TObject); begin Tabela.Locate(Tabela.Fields[1].FieldbyName, labelededit1.text, [lopartialkey, locaseinsensitive]); end; mas não da certo ele dá um erro no FieldBYname [Error] Unit3.pas(80): Undeclared identifier: 'FieldbyName' isso eu peguei num livro que ele fala tambem pra fazer um negocio nu public private FTabela: TCustomADODataset; procedure SetTabela(const Value: TCustomADODataset); { Private declarations } public property Tabela: TCustomADODataset read FTabela write SetTabela; { Public declarations } end; procedure TFormPrincipal.SetTabela(const Value: TCustomADODataset); begin FTabela := Value; end; tudo isso que fiz, eu fiz sem utilizar nenhum QUERYestá faltando ele.. sei la?tipounica coisa que eu to usando ai é o table e o datasource que liga no grid ..o meu grid mostra meu banco de dados... mas o problema e a procura =! to parado com meu programa ajuda eu please!não intendi o que o livro ensina a fazer.. e se tem algo errado alguém pode me ajudar?!?! =)))!!!!! brigadaooo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Novembro 16, 2006 Denunciar Share Postado Novembro 16, 2006 eu tentei o seguinte procedure TFormPrincipal.LabeledEdit1Change(Sender: TObject); begin Tabela.Locate(Tabela.Fields[1].FieldbyName, labelededit1.text, [lopartialkey, locaseinsensitive]); end; mas não da certo ele dá um erro no FieldBYname[Error] Unit3.pas(80): Undeclared identifier: 'FieldbyName'Esse erro é porque o primeiro parâmetro de Locate é uma String que contém os nomes dos campos da sua tabela separados por ";", então: Tabela.Fields[1] retorna um objeto TField que não possui FieldbyName, daí o erro.Se fizer: Tabela.FieldbyName('Nome do Campo'), também retornará um TField.Em outras palavras, ambos os casos retornam um objeto e não uma string. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 schaukoski Postado Novembro 16, 2006 Autor Denunciar Share Postado Novembro 16, 2006 GALERAAAAAAAAAAAAAA já CONSEGUUIIII VALEU PELO APOIO T+++++++++++++ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
schaukoski
Ola !
Estou com dúvidas.
Como faço para meu Edit, onchange, Fazer uma busca no meu banco de dados, e mostrar na tabela, por ordem?
esse é meu programa..
eu quero que quando o cara digitar a letra M pro exemplo, se estiver checked no Nome, que mostre todos os nomes com M em ordem....
ai se ele digitar MA..
aaparecer todos os nomes que comecarem com MA...
uma busca entende?
obrigado!!
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
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.