Fórum Validar dado no DBGrid antes de inserir no registro #369627

06/04/2009

0

Preciso certificar de que a ao inserir ou atualizar um campo tipo data a data digitada pelo usuário não seja maior do que a data atual.

O que eu quero é usar algo do tipo:
if (DataInserida > Now) then ShowMessage (´Data Inválida´);


Esta data é inserida em um célula do DBGrid. Estou usando ADO.


Tatuweb

Tatuweb

Responder

Posts

06/04/2009

Steve_narancic

Você pode utilizar o Evento OnValidate do seu dataset para fazer suas validações, ou no BeforePost


Responder

Gostei + 0

06/04/2009

Tatuweb

Blz, resolvi em parte do jeito que vc falou. Fiz assim


procedure TFrmMain.ADOTableBeforePost(DataSet: TDataSet);
begin
  if DataSet.FieldByName(´DataEmissao´).AsDateTime > Now then ShowMessage (´A data da emissão não pode ser maior do que a data atual.´);
end;

Aparece a mensagem como eu quero mas só que a operação é realizada mesmo assim e eu queria que caso data informada fosse inválida o programa não permitisse a inserção deste dado e voltasse o foco para a célula onde a data foi digitada.


Responder

Gostei + 0

06/04/2009

Tatuweb

Resolvi esta última parte. Coloquei um DataSet.Edit; depois da exibição da msg. Vlw pela ajuda.


Responder

Gostei + 0

06/04/2009

Tatuweb

Quero dizer, esse dataset.edit só resolveu quando eh para atualizar mas quando se trata de inserção não funciona. Ainda estou com o problema.


Responder

Gostei + 0

06/04/2009

Lehapan

Caro TatuWeb,
coloque este código no evento OnBeforePost.

        if  DateOf(DataSet.FieldByName(´DataEmissao´).AsDateTime) > DateOf(Now) then
          begin
            FieldByName(´DataEmissao´).FocusControl; { Para colocar o foco no campo }
            DatabaseError( ´A data da emissão não pode ser maior do que a data atual.´ ); { para dar uma mensagem de erro e não gravar, pois continua com o DataSet.State igual, ou seja, se estiver em dsInsert, continua em dsInsert, caso esteja em dsEdit, continua em dsEdit. }
          end
        ;


espero ter ajudado.


Responder

Gostei + 0

06/04/2009

Tatuweb

Blz! Funcionou tranquilo. Grato!


Responder

Gostei + 0

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

Aceitar