请大家快点帮帮我吧~~(100分)

  • 主题发起人 樱桃小丸子
  • 开始时间

樱桃小丸子

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;
 
看了你的代码,我不明白你在选择“压裂日期”这个字段时为什么要两个
条件?既然是同一表,那么就没有必要使用同一表里的两个记录来确定
同一表里的另外一个记录,我想错误应该出在这里 !!你改一下这里看看
而且,我看你这里的选择是不是要设计到两个表的连接啊???
 
井号是什么数据类型?你也用的字符串类型吗?
是不是定义的整型?
 
to ganquan 我的井号定义的是字符型的。
to win32api 我用二个字段是因为在选择完采油厂后同一采油厂的还有好多井号所以
再选择井号啊!
 
你的问题可能是dblookuplistbox中的一些设置有问题
例如他的datasource属性和listsource属性一样,可能会产生
上述问题,你重新设置试一试!
 

ylsj:字段采油厂、井号、压裂日期,深度,次数(可以通过统计scsj中记录数得出)

scsj:井号、压裂日期和深度字段,有关压裂的参数,不需要采油厂字段

一个油田是不可能有井号一样的两口井的,对吧!这样你的SQL可以节约一些条件。把采油厂省了。
对数据库知之甚少,既然filter已经设置了过滤,那么SQL是否依旧需要带上已经被过滤了的那些条件。
——一点小小的疑惑,不好意思。

在哪个油田啊?不妨交流一下,我也在油田,88128680。
 
不帮小日本和汉奸走狗!!!!!!!!!
 
gxcooo:我只是因为喜欢动画片而叫了这个名字,这和小日本和走狗挂不边吧,你说的话有点
过火了。我想爱国不体现在这吧?
 
这么长时间,也没有人回答问题?怎么办啊?要不把这一百分给我自已加上吧,版主同意吗?
 
即然有错。就一步步调试。
具体出错在哪一行。说说看。
可能是记录结果为空,或是dblookuplistbox3属性设置出错了。
 
在用dblookuplistbox3的时候出错了。
 
多人接受答案了。
 
顶部