樱
樱桃小丸子
Unregistered / Unconfirmed
GUEST, unregistred user!
有ACESS数据库ylsj中两个表ylsj、scsj。在ylsj中有字段采油厂、井号、压裂日期、深度唯一确
定一个记录(也就是一口井)还有一个字段是次数,在scsj中也有采油厂、井号。想实现的
功能是每次在scsj中增加一条记录则ylsj中相应的记录的次数字段增加1。我的问题是在定
位记录时出错了,说是循环嵌套错误。我是先在ylsj中选择采油厂、然后再选井号,再选压
裂日期、再选深度。然后确定出一条记录。我用的控件是dblookuplistbox(把它放在一个
panel上了),然后它的数据源用adoquery。在panel上有一个确定按纽,在选完采油厂之后
按panel上的确定按纽然后出来这个采油厂里的井号,这一步正常,但在选井号出压裂日期
时就说错误了。请大家快帮帮我吧,急死了,周一还要检查呢!!!!
这是根据采油厂选井号的代码:k:=adotable2.fieldvalues['井别'];
qk:=dblookuplistbox1.KeyValue;
adotable1.filter:='采油厂='+''''+qk+'''';
panel1.Visible:=false;
panel2.Visible:=true;
if k='新井' then
begin
adoQuery2.CLOSE;
adoQuery2.SQL.CLEAR;
adoQuery2.SQL.Add('SELECT distinct 井号 FROM ylsj where 采油厂='+''''+qk+''''+'and 次数<3');
adoQuery2.Open;
dblookuplistbox2.KeyField:='井号';
dblookuplistbox2.ListField:='井号';
end
else
begin
adoQuery2.CLOSE;
adoQuery2.SQL.CLEAR;
adoQuery2.SQL.Add('SELECT distinct 井号 FROM ylsj where 采油厂='+''''+qk+''''+'and 次数<4');
adoQuery2.Open;
dblookuplistbox2.KeyField:='井号';
dblookuplistbox2.ListField:='井号';
end;
这是根据井号选压裂日期的代码就出错了:
jh:=dblookuplistbox2.KeyValue;
caption:='生产数据(当前井号为:'+jh+')';
adotable1.filter:='井号='+''''+jh+''''+'and 采油厂='+''''+qk+'''';
adotable2.filter:='井号='+''''+jh+''''+'and 采油厂='+''''+qk+'''';
panel2.Visible:=false;
panel3.Visible:=true;
adoQuery3.CLOSE;
adoQuery3.SQL.CLEAR;
adoQuery3.SQL.Add('SELECT distinct 压裂日期 FROM ylsj where 采油厂='+''''+qk+''''+'and 井号='+''''+jh+'''');
adoQuery3.Open;
dblookuplistbox3.KeyField:='压裂日期';
dblookuplistbox3.ListField:='压裂日期';
button1.Enabled:=true;
定一个记录(也就是一口井)还有一个字段是次数,在scsj中也有采油厂、井号。想实现的
功能是每次在scsj中增加一条记录则ylsj中相应的记录的次数字段增加1。我的问题是在定
位记录时出错了,说是循环嵌套错误。我是先在ylsj中选择采油厂、然后再选井号,再选压
裂日期、再选深度。然后确定出一条记录。我用的控件是dblookuplistbox(把它放在一个
panel上了),然后它的数据源用adoquery。在panel上有一个确定按纽,在选完采油厂之后
按panel上的确定按纽然后出来这个采油厂里的井号,这一步正常,但在选井号出压裂日期
时就说错误了。请大家快帮帮我吧,急死了,周一还要检查呢!!!!
这是根据采油厂选井号的代码:k:=adotable2.fieldvalues['井别'];
qk:=dblookuplistbox1.KeyValue;
adotable1.filter:='采油厂='+''''+qk+'''';
panel1.Visible:=false;
panel2.Visible:=true;
if k='新井' then
begin
adoQuery2.CLOSE;
adoQuery2.SQL.CLEAR;
adoQuery2.SQL.Add('SELECT distinct 井号 FROM ylsj where 采油厂='+''''+qk+''''+'and 次数<3');
adoQuery2.Open;
dblookuplistbox2.KeyField:='井号';
dblookuplistbox2.ListField:='井号';
end
else
begin
adoQuery2.CLOSE;
adoQuery2.SQL.CLEAR;
adoQuery2.SQL.Add('SELECT distinct 井号 FROM ylsj where 采油厂='+''''+qk+''''+'and 次数<4');
adoQuery2.Open;
dblookuplistbox2.KeyField:='井号';
dblookuplistbox2.ListField:='井号';
end;
这是根据井号选压裂日期的代码就出错了:
jh:=dblookuplistbox2.KeyValue;
caption:='生产数据(当前井号为:'+jh+')';
adotable1.filter:='井号='+''''+jh+''''+'and 采油厂='+''''+qk+'''';
adotable2.filter:='井号='+''''+jh+''''+'and 采油厂='+''''+qk+'''';
panel2.Visible:=false;
panel3.Visible:=true;
adoQuery3.CLOSE;
adoQuery3.SQL.CLEAR;
adoQuery3.SQL.Add('SELECT distinct 压裂日期 FROM ylsj where 采油厂='+''''+qk+''''+'and 井号='+''''+jh+'''');
adoQuery3.Open;
dblookuplistbox3.KeyField:='压裂日期';
dblookuplistbox3.ListField:='压裂日期';
button1.Enabled:=true;