Problema editar tabela

Delphi

18/02/2014

Boa tarde pessoal,

Estou com um problema no meu código. Ao editar uma tabela o delphi apresenta o seguinte erro: "BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual."

Segue o codigo da unit.:

---------

unit caixa_datapagamento;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, db;

type
Tfdatapagamento = class(TForm)
mkdata: TMaskEdit;
btok: TButton;
btcancelar: TButton;
Label1: TLabel;
procedure btokClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
fdatapagamento: Tfdatapagamento;

implementation

uses bancoconta, lancamentos;

{$R *.dfm}

procedure Tfdatapagamento.btokClick(Sender: TObject);
begin
dm.data := strtodate (mkdata.Text);


dm.vvalor:=dm.tbcredito.fieldbyname('valor').AsExtended;
dm.vsaldo:=dm.tbconta.Fieldbyname('valor').Asextended;


dm.vvalortotal:=dm.vsaldo+dm.vvalor;
dm.tbconta.edit;
dm.tbconta.FieldByName('valor').Asextended:=dm.vvalortotal;
dm.tbconta.Post;

dm.tbcredito.edit;
dm.tbcreditostatus.text:='ok';
dm.tbcredito.FieldByName('data').Asdatetime:=dm.data;
dm.tbcredito.post;


dm.vvalortotal := 0;
dm.vsaldo:= 0;
dm.vvalor := 0;
dm.data := 00-00-0000;

fdatapagamento.Close;

dm.tbcredito.Filtered:=true;
dm.tbcredito.Filter:='status='+quotedstr('na');
flancamentos:=tflancamentos.create(self);
end;



Executando essa unit linha a linha, o erro apresenta depois da linha: dm.tbcredito.post; .

Desde ja agradeço.
Italo Schramm

Italo Schramm

Curtidas 0

Respostas

Maxiwel Rodrigues

Maxiwel Rodrigues

18/02/2014

procedure Tfdatapagamento.btokClick(Sender: TObject);
begin
dm.data := strtodate (mkdata.Text);


dm.vvalor:=dm.tbcredito.fieldbyname('valor').AsExtended;
dm.vsaldo:=dm.tbconta.Fieldbyname('valor').Asextended;


dm.vvalortotal:=dm.vsaldo+dm.vvalor;
dm.tbconta.edit;
dm.tbconta.FieldByName('valor').Asextended:=dm.vvalortotal;
dm.tbconta.Post;

dm.tbcredito.edit;
dm.tbcreditostatus.text:='ok';
dm.tbcredito.FieldByName('data').Asdatetime:=dm.data;
dm.tbcredito.post;
************************************************
fdatapagamento.open;
fdatapagamento.edit;//precisa abrir a tabela depois de salvar;
************************************************
dm.vvalortotal := 0;
dm.vsaldo:= 0;
dm.vvalor := 0;
dm.data := 00-00-0000;

fdatapagamento.Close;


dm.tbcredito.Filtered:=true;
dm.tbcredito.Filter:='status='+quotedstr('na');
flancamentos:=tflancamentos.create(self);
end;

Veja se da certo.......qual o erro que da mesmo????????????
GOSTEI 0
Italo Schramm

Italo Schramm

18/02/2014

Maxiwel,

Muito Obrigado pela resposta. Consegui resolver o probelama desativando o Filtro antes da pesquisa e ativando depois do post.
GOSTEI 0
POSTAR