我现在在DBgrid中设置了右键进行修改,可是我选择了DBgrid中的记录右键进行修改,可是DBgrid中的数据只剩下我选中的这一条数据。
我想要的效果是选择了DBgrid中的数据,右键进行修改,而Dbgrid中的数据还保留原有的数据量,修改后在DBgrid中的数据在进行更新。
我想要的效果是选择了DBgrid中的数据,右键进行修改,而Dbgrid中的数据还保留原有的数据量,修改后在DBgrid中的数据在进行更新。
application.CreateForm(Tbill_add_frm,bill_add_frm); //修改过程
grd_bill.DataSource.DataSet.Edit;
bill_add_frm.edt_id.Text:=grd_bill.DataSource.DataSet.fieldbyname('bill_id').AsString;
bill_add_frm.edt_name.Text:=grd_bill.DataSource.DataSet.FieldByName('bill_expense_name').AsString;
bill_add_frm.Caption:='报销单信息修改';
//display form
bill_add_frm.ShowModal;
bill_add_frm.Free;
--------------------
用做参考
with qry do
begin
close;
sql.text:='select * from tablename'
open ;
end;
procedure TEditAccount_Form.FormShow(Sender: TObject);
var
TargetUpdate:string;
begin
if (Main_Form.DBGrid1.Columns[0].Field.AsString<>'') then
begin
TargetUpdate:=Main_Form.DBGrid1.Columns[0].Field.AsString;
TDM.ADOQuery3.Close;
TDM.ADOQuery3.SQL.Clear;
TDM.ADOQuery3.SQL.Add('select * from should_paied where ID='+TargetUpdate);
TDM.ADOQuery3.Open;
EditAccount_Form.course_code.Text:=TDM.ADOQuery3.Fields[1].AsString;
EditAccount_Form.st_time.Date:=StrToDate(TDM.ADOQuery3.Fields[2].AsString);
EditAccount_Form.unpaied_com.Text:=TDM.ADOQuery3.Fields[3].AsString;
EditAccount_Form.manager.Text:=TDM.ADOQuery3.Fields[4].AsString;
EditAccount_Form.tel.Text:=TDM.ADOQuery3.Fields[5].AsString;
EditAccount_Form.unpaied_time.Date:=StrToDate(TDM.ADOQuery3.Fields[6].AsString);
EditAccount_Form.adr.Text:=TDM.ADOQuery3.Fields[7].AsString;
EditAccount_Form.ticket_paied.Text:=TDM.ADOQuery3.Fields[8].AsString;
EditAccount_Form.should_paied.Text:=TDM.ADOQuery3.Fields[9].AsString;
EditAccount_Form.tz_paied.Text:=TDM.ADOQuery3.Fields[10].AsString;
EditAccount_Form.have_paied.Text:=TDM.ADOQuery3.Fields[11].AsString;
EditAccount_Form.fz_paied.Text:=TDM.ADOQuery3.Fields[12].AsString;
EditAccount_Form.content.Text:=TDM.ADOQuery3.Fields[13].AsString;
end;
end;之后在进行修改procedure TEditAccount_Form.BitBtn1Click(Sender: TObject);
var
TarValue:string;
begin
if (Main_Form.DBGrid1.Columns[0].Field.AsString<>'') then
begin
with TDM.ADOQuery3 do
begin
TarValue:=Main_Form.DBGrid1.Columns[0].Field.AsString;
TDM.ADOQuery3.Close;
TDM.ADOQuery3.SQL.clear;
TDM.ADOQuery3.SQL.Add('select * from should_paied where ID='+TarValue);
TDM.ADOQuery3.Open;
TDM.ADOQuery3.Edit;
TDM.ADOQuery3.FieldByName('course_code').AsString:=EditAccount_Form.course_code.Text;
TDM.ADOQuery3.FieldByName('st_time').AsString:=FormatDateTime('yyyy-mm-dd',EditAccount_Form.st_time.Date);
TDM.ADOQuery3.FieldByName('unpaied_com').AsString:=EditAccount_Form.unpaied_com.text;
TDM.ADOQuery3.FieldByName('manager').AsString:=EditAccount_Form.manager.Text;
TDM.ADOQuery3.FieldByName('tel').AsString:=EditAccount_Form.tel.Text;
TDM.ADOQuery3.FieldByName('unpaied_time').AsString:=FormatDateTime('yyyy-mm-dd',EditAccount_Form.unpaied_time.Date);
TDM.ADOQuery3.FieldByName('adr').AsString:=EditAccount_Form.adr.Text;
TDM.ADOQuery3.FieldByName('ticket_paied').AsString:=EditAccount_Form.ticket_paied.Text;
TDM.ADOQuery3.FieldByName('should_paied').AsString:=EditAccount_Form.should_paied.Text;
TDM.ADOQuery3.FieldByName('tz_paied').AsString:=EditAccount_Form.tz_paied.text;
TDM.ADOQuery3.FieldByName('have_paied').AsString:=EditAccount_Form.have_paied.text;
TDM.ADOQuery3.FieldByName('fz_paied').AsString:=EditAccount_Form.fz_paied.text;
TDM.ADOQuery3.FieldByName('content').AsString:=EditAccount_Form.content.Text;
TDM.ADOQuery3.FieldByName('peoplename').AsString:=login_peoplename;
TDM.ADOQuery3.FieldByName('branch_name').AsString:=login_deptname;
TDM.ADOQuery3.FieldByName('bookingid').AsString:=FormatDateTime('yyyymmddhhnnss',now());
TDM.ADOQuery3.FieldByName('ss_Paied').AsString:=IntToStr(StrToInt(EditAccount_Form.should_paied.Text)+StrToInt(EditAccount_Form.tz_paied.text));
TDM.ADOQuery3.FieldByName('ws_paied').AsString:=IntToStr(StrToInt(EditAccount_Form.should_paied.Text)+StrToInt(EditAccount_Form.tz_paied.text)-StrToInt(EditAccount_Form.have_paied.Text));
if messagedlg('确实修改这条记录吗?',mtInformation,[mbOK, mbCancel],0)=mrok then
begin
TDM.ADOQuery3.Post;
Main_Form.dataRefresh;
end;
end;
end;
end;
var
TarValue:string;
begin
if (Main_Form.DBGrid1.Columns[0].Field.AsString<>'') then
begin
with TDM.ADOQuery3 do
begin
TarValue:=Main_Form.DBGrid1.Columns[0].Field.AsString;
TDM.ADOQuery3.Close;
TDM.ADOQuery3.SQL.clear;
TDM.ADOQuery3.SQL.Add('select * from should_paied where ID='+TarValue);
TDM.ADOQuery3.Open;
TDM.ADOQuery3.Edit;
TDM.ADOQuery3.FieldByName('course_code').AsString:=EditAccount_Form.course_code.Text;
TDM.ADOQuery3.FieldByName('st_time').AsString:=FormatDateTime('yyyy-mm-dd',EditAccount_Form.st_time.Date);
TDM.ADOQuery3.FieldByName('unpaied_com').AsString:=EditAccount_Form.unpaied_com.text;
TDM.ADOQuery3.FieldByName('manager').AsString:=EditAccount_Form.manager.Text;
TDM.ADOQuery3.FieldByName('tel').AsString:=EditAccount_Form.tel.Text;
TDM.ADOQuery3.FieldByName('unpaied_time').AsString:=FormatDateTime('yyyy-mm-dd',EditAccount_Form.unpaied_time.Date);
TDM.ADOQuery3.FieldByName('adr').AsString:=EditAccount_Form.adr.Text;
TDM.ADOQuery3.FieldByName('ticket_paied').AsString:=EditAccount_Form.ticket_paied.Text;
TDM.ADOQuery3.FieldByName('should_paied').AsString:=EditAccount_Form.should_paied.Text;
TDM.ADOQuery3.FieldByName('tz_paied').AsString:=EditAccount_Form.tz_paied.text;
TDM.ADOQuery3.FieldByName('have_paied').AsString:=EditAccount_Form.have_paied.text;
TDM.ADOQuery3.FieldByName('fz_paied').AsString:=EditAccount_Form.fz_paied.text;
TDM.ADOQuery3.FieldByName('content').AsString:=EditAccount_Form.content.Text;
TDM.ADOQuery3.FieldByName('peoplename').AsString:=login_peoplename;
TDM.ADOQuery3.FieldByName('branch_name').AsString:=login_deptname;
TDM.ADOQuery3.FieldByName('bookingid').AsString:=FormatDateTime('yyyymmddhhnnss',now());
TDM.ADOQuery3.FieldByName('ss_Paied').AsString:=IntToStr(StrToInt(EditAccount_Form.should_paied.Text)+StrToInt(EditAccount_Form.tz_paied.text));
TDM.ADOQuery3.FieldByName('ws_paied').AsString:=IntToStr(StrToInt(EditAccount_Form.should_paied.Text)+StrToInt(EditAccount_Form.tz_paied.text)-StrToInt(EditAccount_Form.have_paied.Text));
if messagedlg('确实修改这条记录吗?',mtInformation,[mbOK, mbCancel],0)=mrok then
begin
TDM.ADOQuery3.Post;
// Main_Form.dataRefresh;
TDM.ADOQuery3.Close;
TDM.ADOQuery3.SQL.clear;
TDM.ADOQuery3.SQL.Add('select * from should_paied );
TDM.ADOQuery3.Open
end;
end;
end;
end;或者
之后在进行修改procedure TEditAccount_Form.BitBtn1Click(Sender: TObject);
var
TarValue:string;
begin
if (Main_Form.DBGrid1.Columns[0].Field.AsString<>'') then
begin
with TDM.ADOQuery3 do
begin
TarValue:=Main_Form.DBGrid1.Columns[0].Field.AsString;
//TDM.ADOQuery3.Close;
// TDM.ADOQuery3.SQL.clear;
//TDM.ADOQuery3.SQL.Add('select * from should_paied where ID='+TarValue);
// TDM.ADOQuery3.Open;
TDM.ADOQuery3.Edit;
TDM.ADOQuery3.FieldByName('course_code').AsString:=EditAccount_Form.course_code.Text;
TDM.ADOQuery3.FieldByName('st_time').AsString:=FormatDateTime('yyyy-mm-dd',EditAccount_Form.st_time.Date);
TDM.ADOQuery3.FieldByName('unpaied_com').AsString:=EditAccount_Form.unpaied_com.text;
TDM.ADOQuery3.FieldByName('manager').AsString:=EditAccount_Form.manager.Text;
TDM.ADOQuery3.FieldByName('tel').AsString:=EditAccount_Form.tel.Text;
TDM.ADOQuery3.FieldByName('unpaied_time').AsString:=FormatDateTime('yyyy-mm-dd',EditAccount_Form.unpaied_time.Date);
TDM.ADOQuery3.FieldByName('adr').AsString:=EditAccount_Form.adr.Text;
TDM.ADOQuery3.FieldByName('ticket_paied').AsString:=EditAccount_Form.ticket_paied.Text;
TDM.ADOQuery3.FieldByName('should_paied').AsString:=EditAccount_Form.should_paied.Text;
TDM.ADOQuery3.FieldByName('tz_paied').AsString:=EditAccount_Form.tz_paied.text;
TDM.ADOQuery3.FieldByName('have_paied').AsString:=EditAccount_Form.have_paied.text;
TDM.ADOQuery3.FieldByName('fz_paied').AsString:=EditAccount_Form.fz_paied.text;
TDM.ADOQuery3.FieldByName('content').AsString:=EditAccount_Form.content.Text;
TDM.ADOQuery3.FieldByName('peoplename').AsString:=login_peoplename;
TDM.ADOQuery3.FieldByName('branch_name').AsString:=login_deptname;
TDM.ADOQuery3.FieldByName('bookingid').AsString:=FormatDateTime('yyyymmddhhnnss',now());
TDM.ADOQuery3.FieldByName('ss_Paied').AsString:=IntToStr(StrToInt(EditAccount_Form.should_paied.Text)+StrToInt(EditAccount_Form.tz_paied.text));
TDM.ADOQuery3.FieldByName('ws_paied').AsString:=IntToStr(StrToInt(EditAccount_Form.should_paied.Text)+StrToInt(EditAccount_Form.tz_paied.text)-StrToInt(EditAccount_Form.have_paied.Text));
if messagedlg('确实修改这条记录吗?',mtInformation,[mbOK, mbCancel],0)=mrok then
begin
TDM.ADOQuery3.Post;
//Main_Form.dataRefresh;
end;
end;
end;
end;