我想做一个修改数据库中记录的功能,首先在Frm_SPxinxi窗口中的DBGrid1控件中显示了数据库中的数据
,然后我想修改某一条记录,于是我双击该条记录,弹出一个新的窗口Frm_SPxinxiXG,这个窗口中是一
些DBEdit和DBComboBox的控件。这样双击后就在该窗口中的每一个对应控件中显示出来我要修改记录的信
息,于是我修改,没有丝毫问题,很正常。但是有一个问题,当我首先进行查询,对查询的结果双击进行
修改后,如果我再按“全部显示”按钮就会出问题。提示如下:Project PjtSJ.exe raised exception
class EDatabaseError with message 'DBComboBox_name:Field'SPname' not found'.Process
stopped.Use Step ro Run to continue.按其他一些需要用的查询语句的按钮都会出问题,起初我认为是
查询和修改公用ADOQuery1的问题,可是我把Frm_SPxinxiXG窗口中的“修改按钮”的提交换了一个
ADOQuery,使与其不公用一个,可还是不行,问题同样。 请问这是怎么回事。附加代码:
“Frm_SPxinxi窗口全部显示代码”
if DBGrid1.DataSource=DM.DataSource_SP then
DBGrid1.DataSource:=DataSource1;
ADOQuery1.Filtered:=false;
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from qitaSP order by SPname,SPkucun DESC');
open;
end;
“Frm_SPxinxiXG窗口修改按钮代码”
begin
Frm_SPxinxi.ADOQuery1.Edit;
Frm_SPxinxi.ADOQuery1.Post;
messagebox(handle,'记录修改成功!','提醒',MB_OK+MB_ICONASTERISK);
Frm_SPxinxiXG.Close;
end;