Data de Nascimento Maior que Data Base
Boa noite... Preciso que meu sistema iniba o cadastro de crianças com menos de 6 meses usei a função abaixo, mas ao informar qualquer data de nascimento, mesmo datas como 14/02/2015 me é exibida a mensagem, informando que a data está errada.
procedure Tfrm_cadastro.db_edit_nascimentoExit(Sender: TObject);
var I,F:tdate;
begin
if dm_conexoes.tbl_cadastro.FieldByName('data_nascimento').AsDateTime > 15/07/2015
then
begin
ShowMessage('Data inválida. A data de nascimento não pode ser maior que 15/07/2015!');
db_edit_nascimento.Clear;
db_edit_nascimento.SetFocus;
exit;
end
else
begin
f:=(StrToDate('31/03/2016'));
i:=(StrToDate(db_edit_nascimento.Text));
lbl_idade.Caption:= CalculaIdade(f,i);
end;
end;
procedure Tfrm_cadastro.db_edit_nascimentoExit(Sender: TObject);
var I,F:tdate;
begin
if dm_conexoes.tbl_cadastro.FieldByName('data_nascimento').AsDateTime > 15/07/2015
then
begin
ShowMessage('Data inválida. A data de nascimento não pode ser maior que 15/07/2015!');
db_edit_nascimento.Clear;
db_edit_nascimento.SetFocus;
exit;
end
else
begin
f:=(StrToDate('31/03/2016'));
i:=(StrToDate(db_edit_nascimento.Text));
lbl_idade.Caption:= CalculaIdade(f,i);
end;
end;
Wilter Porto
Curtidas 0
Respostas
Cauê Nishijima
14/01/2016
Tenta usar a função MonthsBetween para verificar se entre uma data e outra tem mais de 6 meses.
GOSTEI 0
Wilter Porto
14/01/2016
Resolvido conforme sua orientação usei:
if dm_conexoes.tbl_cadastro.FieldByName('data_nascimento').AsDateTime > StrToDate('15/07/2015') then
begin
ShowMessage('Data inválida. A data de nascimento não pode ser maior que 15/07/2015!');
db_edit_nascimento.Clear;
db_edit_nascimento.SetFocus;
exit;
end
else
begin
DataF:=(StrToDate('31/03/2016'));
DataI:=(StrToDate(db_edit_nascimento.Text));
lbl_idade.Caption:= CalculaIdade(DataI,DataF);
end;
if dm_conexoes.tbl_cadastro.FieldByName('data_nascimento').AsDateTime > StrToDate('15/07/2015') then
begin
ShowMessage('Data inválida. A data de nascimento não pode ser maior que 15/07/2015!');
db_edit_nascimento.Clear;
db_edit_nascimento.SetFocus;
exit;
end
else
begin
DataF:=(StrToDate('31/03/2016'));
DataI:=(StrToDate(db_edit_nascimento.Text));
lbl_idade.Caption:= CalculaIdade(DataI,DataF);
end;
GOSTEI 0
Ronaldo Filho
14/01/2016
Bom dia Grande.
Dá uma olhada nesse exemplo, coloquei a mensagem errada na tela, no caso a data tem que ser menos que a da lista, nele eu também estou usando o desenvolvimento do acesso à dados isolando o tratamento dos dados da conexão da base. Essa técnica deixa a velocidade de acesso bem mais rápida e garante segurança durante o manuseio dos dados.
[url:descricao=Teste de data usando ClientDataSet com configuração básica]https://drive.google.com/open?id=0By4hmKE2BJyzek8wSF8ydE1Pdzg[/url]
Dá uma olhada nesse exemplo, coloquei a mensagem errada na tela, no caso a data tem que ser menos que a da lista, nele eu também estou usando o desenvolvimento do acesso à dados isolando o tratamento dos dados da conexão da base. Essa técnica deixa a velocidade de acesso bem mais rápida e garante segurança durante o manuseio dos dados.
[url:descricao=Teste de data usando ClientDataSet com configuração básica]https://drive.google.com/open?id=0By4hmKE2BJyzek8wSF8ydE1Pdzg[/url]
GOSTEI 0
Ronaldo Filho
14/01/2016
Grande pega esse Link que agora da certo, tinha esquecido de colocar lá a liberação de downloads
Projeto teste - Delphi 7
Projeto teste - Delphi 7
GOSTEI 0
Wilter Porto
14/01/2016
Ok. Obrigado.
GOSTEI 0
Wilter Porto
14/01/2016
tá pedindo login para fazer o download.
GOSTEI 0
Raimundo Pereira
14/01/2016
Wilter, Conseguiu algum progresso ?
GOSTEI 0
Wilter Porto
14/01/2016
Sim. Já postei acima o resultado.
GOSTEI 0
Ronaldo Filho
14/01/2016
me manda teu e-mail ai envio pra você, por que o Google Drive deve está "frescando" comigo, kkkkkkk.
GOSTEI 0
Raimundo Pereira
14/01/2016
Então chegou no resultado que precisava ?
Tópico Resolvido ?
Tópico Resolvido ?
GOSTEI 0
Wilter Porto
14/01/2016
Deu certo era falta de atencao. Loguei.
GOSTEI 0
Wilter Porto
14/01/2016
TÓPICO RESOLVIDO.
GOSTEI 0