Rotina para avisar o vencimento de um produto com 60 dias de antecedencia
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
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
Curtidas 0
Respostas
Ricardo
12/10/2014
With query do
begin
close;
sql.clear;
sql.add('select * from tabela where VectoProduto =' datetostr(date + 60));
open;
end;
begin
close;
sql.clear;
sql.add('select * from tabela where VectoProduto =' datetostr(date + 60));
open;
end;
GOSTEI 0
Clecio Alves
12/10/2014
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
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
GOSTEI 0
Ricardo
12/10/2014
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;
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;
GOSTEI 0
Clecio Alves
12/10/2014
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.
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.
GOSTEI 0
Ricardo
12/10/2014
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.
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.
GOSTEI 0
Clecio Alves
12/10/2014
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!
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!
GOSTEI 0
Clecio Alves
12/10/2014
Estou usando o access como banco de dados
GOSTEI 0
Pedro
12/10/2014
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;
begin
With DM.Q_PRODUTOS do
begin
close;
sql.clear;
sql.add('select * from tabela where VectoProduto =' datetostr(date + 60));
open;
end;
end;
GOSTEI 0
Clecio Alves
12/10/2014
rapaz, não funciona nem a pau
alguém pode postar um exemplo pratico?
Atenciosamente; Clecio
alguém pode postar um exemplo pratico?
Atenciosamente; Clecio
GOSTEI 0
Clecio Alves
12/10/2014
Dei um control + shift + a e realmente o delphi 2010 não reconhece esse comando: With DM.Q_PRODUTOS do
GOSTEI 0
Clecio Alves
12/10/2014
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
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
GOSTEI 0
Clecio Alves
12/10/2014
Ainda continuo precisando de ajuda.
GOSTEI 0
Eduardo Silva.
12/10/2014
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
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
GOSTEI 0