Ir ao conteúdo
  • Cadastre-se

Delphi Consulta em varios campos com dbGrid


Posts recomendados

Boa Noite, sou iniciante em Delphi, estou com dificuldade com uma consulta, utilizo banco de dados em Access, um AdoQuery, Data Source, DbConection. 

Tenho uma DbGrid onde utilizo uma consulta com vários campos e duas datas, consegui com o código abaixo filtrar por vários campos, porém quando eu insiro um novo registro ele não aparece na consulta, somente os registros que ja existiam no banco. O que esta de errado com meu código? Como faço pra aparecer na consulta os novos registros?
<>
procedure TFrm_Cadastro.SpeedButton2Click(Sender: TObject); 
Begin; 
Frm_Cadastro.Tbl_Clientes.Close; 
Frm_Cadastro.Tbl_Clientes.SQL.Clear; 
Frm_Cadastro.Tbl_Clientes.SQL.Add('Select * from Tbl_Cad_Clientes where Cli_Nome like' + QuotedStr(txt_buscar_nome.text+'%')); 
Frm_Cadastro.Tbl_Clientes.SQL.Add('and Cli_Duplicata like ' + QuotedStr(txt_buscar_duplicata.text+'%')); 
Frm_Cadastro.Tbl_Clientes.SQL.Add('and Cli_Rota like'+ QuotedStr(txt_buscar_rota.text+'%')); 
Frm_Cadastro.Tbl_Clientes.SQL.Add('and Cli_Situacao like'+QuotedStr(txt_buscar_situacao.text+'%')); 
Frm_Cadastro.Tbl_Clientes.SQL.Add('and Cli_Cidade like'+QuotedStr(txt_buscar_cid.text+'%')); 
Frm_Cadastro.Tbl_Clientes.SQL.Add('and Cli_Vendedor like'+QuotedStr(txt_buscar_vend.text+'%')); 

Frm_Cadastro.Tbl_Clientes.Sql.Add('and Cli_DataVenda Between :dataini and :datafim'); 
Frm_Cadastro.Tbl_Clientes.Params.ParamByName('dataini').Value :=StrToDate(MaskEdit1.text); 
Frm_Cadastro.Tbl_Clientes.Params.ParamByName('datafim').Value :=StrToDate(MaskEdit2.text); 

Frm_Cadastro.Tbl_Clientes.Open; 
Rel_Clientes.ShowReport(); 
end;

 

<>

 

Na primeira imagem mostra que o novo registro existe dentro do DbGrid.

1194108072_Semttulo.thumb.png.bb3785c28a2f451b5358235a4e72934b.png

 

 

 

 

na segunda imagem ao aplicar o filtro mostra apenas os registros antigos

 

Sem título1.png

Link para o post
Compartilhar em outros sites
  • mês depois...

há duas possibilidades:

1- o registro inserido não tem informação a ser encontrada:

antes de pesquisar verifique campo por campo se o valor é diferente de vazio, exemplo:

if length(txt_buscar_vend.text) > 0 then

Frm_Cadastro.Tbl_Clientes.SQL.Add('and Cli_Vendedor like'+QuotedStr(txt_buscar_vend.text+'%')); 

 

se a primeira não funcionar, 

2- essa é mais chata, procure sobre o campo "locktype" das adoquerys e se o banco de dados não está escrevendo os dados, por exemplo ao inserir um registro e fechar imediatamente o programa, procure sobre ADOConnection1.CommitTrans;

 


 

 

Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora


Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!