回 帖 发 新 帖 刷新版面

主题:修改记录请教

本人修改记录时碰到了如下问题,请教各位高手:
  用几个Edit组件添加记录后,都在底下用一个dbgrid组件来显示,现想修改其中的任何一条记录,编写的代码如下:
procedure Tinput.BitBtn4Click(Sender: TObject);
begin
if Application.MessageBox('确实要修改当前记录么','提示',mb_YesNo)=ID_Yes then
begin
 with Adotable1 do
 begin
 edit;
 fieldbyname('耗材名称').AsString:=Trim(Edit1.Text);
 fieldbyname('数量').AsString:=Trim(Edit2.Text);
 fieldbyname('所领工厂').AsString:=Trim(Edit3.Text);
 fieldbyname('部门').AsString:=Trim(Edit4.Text);
 fieldbyname('领取人').AsString:=Trim(Edit5.Text);
 fieldbyname('领取时间').AsString:=Trim(Edit6.Text);
 post
 end;
 end;
end;
能够在dbgrid中选中一条记录后在Edit组件中填入要修改的值,但只有当填入改记录全部的值才能修改,若只改变记录的一两个值则点击修改按钮后,修改的那条记录的值全变为空了。
现想实现的效果是,选中记录后只修改该记录中的一两个值也可以。
请帮忙解决啊?谢谢

回复列表 (共1个回复)

沙发

有无用TDBEdit控件,它有数据感知功能哦,对你所讲的功能,用TDBEdit就能达到了.试试看吧

procedure TForm1.Button1Click(Sender: TObject);
begin
if Application.MessageBox('确实要修改当前记录么','提示',mb_YesNo)=ID_Yes then
begin
 with Adotable1 do
 Adotable1.edit;
if (Edit1.Text<>'') then
 Adotable1.fieldbyname('KeyId').AsString:=Edit1.Text;
 begin
 if (Adotable1.modified) then
 Adotable1.post; 
 end;
 end;
 end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);//双击时
begin
Adotable1.Open;
Edit1.Text:=Adotable1.fieldbyname('KeyId').AsString;
end;

我来回复

您尚未登录,请登录后再回复。点此登录或注册