Fórum Rotina para avisar o vencimento de um produto com 60 dias de antecedencia #497568

12/10/2014

0

Boa tarde a todos.
Estou precisando implementar em uma sistema de controle de estoque uma rotina que me avise com antecedência o vencimento de um produto.
Quero ja criei um formulário com a dbgrid que vai listar os produtos.
Na tabela criada no Access, criei uma coluna com o nome VectoProduto
Agora que que quando o sistema iniciar, apareça o formulário com a lista apenas dos produtos que vencerão nos próximos 60 dias.
Obs. Uso o Delphi 2010
Atenciosamente; Clecio
Clecio Alves

Clecio Alves

Responder

Posts

12/10/2014

Ricardo

With query do
begin
close;
sql.clear;
sql.add('select * from tabela where VectoProduto =' datetostr(date + 60));
open;
end;
Responder

Gostei + 0

14/10/2014

Clecio Alves

Amigão, em que evento eu dou esses comandos?
A minha query da em dm.Q_PRODUTOS
Preciso criar uma outra query?
e colocar algum parâmetro dentro dela?
Quando dou esse comando no evento onshow do form o delphi nao reconhece e da erro With query do
O que estou fazendo de errado?
Atenciosamente; Clecio
Responder

Gostei + 0

15/10/2014

Ricardo

Isso você é quem vai decidir; se vai colocar em botão para executar quando quiser verificar manualmente, no evento OnActive ou OnCreate do form etc...

No caso "query" foi a forma de exemplificar, você precisa alterar para o nome do seu componente. Se a sua query chama Q_PRODUTOS e está em um DataModule então...

With dm.Q_PRODUTOS do
begin

instruções

end;
Responder

Gostei + 0

18/10/2014

Clecio Alves

Fiz do jeito que você me orientou: With dm.Q_PRODUTOS do
Continua dando erro no comando.
O delphi 2010 não reconhece With dm.Q_PRODUTOS do
Esse comando não seria para delphi 07?
Obrigado pela força.
Responder

Gostei + 0

18/10/2014

Ricardo

Fiz do jeito que você me orientou: With dm.Q_PRODUTOS do
Continua dando erro no comando.
O delphi 2010 não reconhece With dm.Q_PRODUTOS do
Esse comando não seria para delphi 07?
Obrigado pela força.


Para o Delphi 7? Desde que trabalho com Delphi primeira vez que ouço uma coisa dessas. Seria o mesmo que um If, While, For funcionar em certas versões e em outras não. With é da linguagem Object Pascal.

Veja bem se o erro é nessa linha então verifique o nome da sua query, o nome do seu DataModule. Agora veja bem, quando o Delphi informa uma linha após erro para compilar, não quer dizer que o erro é nela, pode ser antes ou alguma declaração incorreta.

O mais interessante seria você postar o seu código aqui, aí fica mais fácil de ajudar.
Responder

Gostei + 0

18/10/2014

Clecio Alves

No evento form active colocoque os comandos no delphi 2010:

procedure TForm1.FormActivate(Sender: TObject);
With DM.Q_PRODUTOS do // (erro nessa linha)
begin
Close;
DM.Q_PRODUTOS.SQL.Add('select * from produtos where VectoProdutos =' + datetostr(date + 60));
end;



end.

Obrigado!
Responder

Gostei + 0

18/10/2014

Clecio Alves

Estou usando o access como banco de dados
Responder

Gostei + 0

18/10/2014

Pedro

procedure TForm1.FormActivate(Sender: TObject);
begin
With DM.Q_PRODUTOS do
begin
close;
sql.clear;
sql.add('select * from tabela where VectoProduto =' datetostr(date + 60));
open;
end;
end;
Responder

Gostei + 0

18/10/2014

Clecio Alves

rapaz, não funciona nem a pau
alguém pode postar um exemplo pratico?
Atenciosamente; Clecio
Responder

Gostei + 0

19/10/2014

Clecio Alves

Dei um control + shift + a e realmente o delphi 2010 não reconhece esse comando: With DM.Q_PRODUTOS do
Responder

Gostei + 0

27/10/2014

Clecio Alves

Fiz desta forma:

procedure TForm1.FormActivate(Sender: TObject);
begin
With DM.Q_PRODUTOS do
begin
close;
sql.clear;
sql.add('select * from tabela where VectoProduto =' datetostr(date + 60));
open;
end;
end;

Não deu nenhum erro mais não listou os os produtos com os respectivos vencimentos para 60 dias.

At. Clecio
Responder

Gostei + 0

31/10/2014

Clecio Alves

Ainda continuo precisando de ajuda.
Responder

Gostei + 0

31/10/2014

Eduardo Silva.

Para efetuar consulta SQL no Access, você tem que utilizar a #(Cerquilha no inicio e no fim da Data), exemplo:

SELECT * FROM PRODUTOS WHERE VECIMENTO = #31/10/2014#

Então o seu código ficaria:

SQL.Add('SELECT * FROM PRODUTOS WHERE VENCIMENTO = ' + FormatDateTime('#dd/mm/yyyy#', Now + 60));

#OBS: Access não é um Banco de Dados Relacional que utiliza SQL Padrão Ansi 92, ele tem características próprias na sua sintaxe.

sds

Eduardo Belo
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar