to Almzg_0 and geliang 并没有动态生成的组件 我得试试lixm332的方法,不行就真的要重写了
你把open之前的语句贴出来看看
大家请看 with GS_showrecord_form.ADOQuery1 do begin close; if Trim(CBBoxchaxunziduan.text)= '董事会成员' then sql.add(' and qiyebianhao in (select qiyebianhao from dongshihui where chengyuanmingcheng like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')')) else if Trim(CBBoxchaxunziduan.text)= '监事会成员' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_jianshihui where chengyuanmingcheng like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')')) else if Trim(CBBoxchaxunziduan.text)= '经营范围' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_jingyingfanwei where fanwei like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')')) else if Trim(CBBoxchaxunziduan.text)= '审批证书' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_jingyingfanwei where zhengshu like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')')) else if Trim(CBBoxchaxunziduan.text)= '变更时间' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_biangeng where (biangengshijian like ''%'+Trim(CBBoxchaxuntiaojian.Text)+'%'') or (biangengshijian='''+Trim(CBBoxchaxuntiaojian.Text)+'''))') else if Trim(CBBoxchaxunziduan.text)= '变更内容' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_biangeng where biangengneirong like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')')) else if Trim(CBBoxchaxunziduan.text)= '审批文件' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_biangeng where shenpiwenjian like ''%'+Trim(CBBoxchaxuntiaojian.Text)+'%'')') else if Trim(CBBoxchaxunziduan.text)= '注销时间' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_zhuxiaodengji where (zhuxiaoshijian like ''%'+Trim(CBBoxchaxuntiaojian.Text)+'%'') or (zhuxiaoshijian='''+Trim(CBBoxchaxuntiaojian.Text)+'''))') else if Trim(CBBoxchaxunziduan.text)= '注销方式' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_zhuxiaodengji where zhuxiaofangshi like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')')) else if Trim(CBBoxchaxunziduan.text)= '债务承担' then sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_zhuxiaodengji where zhaiwuchengdan like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')')) else if Trim(CBBoxchaxunziduan.Text)= '操作员' then sql.add(' and caozuoyuan=(Select id from QX_renyuan where mingcheng='''+Trim(CBBoxchaxuntiaojian.Text)+''')') else if Trim(CBBoxchaxunziduan.TExt)= '出资单位' then sql.add(' and qiyebianhao in (select distinct qiyebianhao from gsdj_zijin where chuzidanwei like ''%'+Trim(CBBoxchaxuntiaojian.Text)+'%'')') else sql.add(' and '+FindFieldName(Trim(CBBoxchaxunziduan.Text))+' like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%''')); open; end;
情况说详细一些。
to everything:
我看一下程序
试一下看看.
程序就要收尾,现在换个方法,我苦啊!
to abedon:
这个模块有近1000行,你想看吗?
你有没有动态创建然后释放一些组件或窗体。
因为Form没有释放完全又引用时报的错与你遇到有极相似。
'Exception EAccessViolation' 是个什么东西啊?
Almzg_0(金宝)说得有点道理,可能是指针问题,你检查一下,有没有动态生成的组件,用完之后有没有释放.对了,你的数据模块是什么时候创建的,建议在刚开始运行时就创建.
并没有动态生成的组件
我得试试lixm332的方法,不行就真的要重写了
with GS_showrecord_form.ADOQuery1 do begin
close;
if Trim(CBBoxchaxunziduan.text)= '董事会成员' then
sql.add(' and qiyebianhao in (select qiyebianhao from dongshihui where chengyuanmingcheng like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')'))
else if Trim(CBBoxchaxunziduan.text)= '监事会成员' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_jianshihui where chengyuanmingcheng like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')'))
else if Trim(CBBoxchaxunziduan.text)= '经营范围' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_jingyingfanwei where fanwei like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')'))
else if Trim(CBBoxchaxunziduan.text)= '审批证书' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_jingyingfanwei where zhengshu like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')'))
else if Trim(CBBoxchaxunziduan.text)= '变更时间' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_biangeng where (biangengshijian like ''%'+Trim(CBBoxchaxuntiaojian.Text)+'%'') or (biangengshijian='''+Trim(CBBoxchaxuntiaojian.Text)+'''))')
else if Trim(CBBoxchaxunziduan.text)= '变更内容' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_biangeng where biangengneirong like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')'))
else if Trim(CBBoxchaxunziduan.text)= '审批文件' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_biangeng where shenpiwenjian like ''%'+Trim(CBBoxchaxuntiaojian.Text)+'%'')')
else if Trim(CBBoxchaxunziduan.text)= '注销时间' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_zhuxiaodengji where (zhuxiaoshijian like ''%'+Trim(CBBoxchaxuntiaojian.Text)+'%'') or (zhuxiaoshijian='''+Trim(CBBoxchaxuntiaojian.Text)+'''))')
else if Trim(CBBoxchaxunziduan.text)= '注销方式' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_zhuxiaodengji where zhuxiaofangshi like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')'))
else if Trim(CBBoxchaxunziduan.text)= '债务承担' then
sql.add(' and qiyebianhao in (select qiyebianhao from gsdj_zhuxiaodengji where zhaiwuchengdan like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'')'))
else if Trim(CBBoxchaxunziduan.Text)= '操作员' then
sql.add(' and caozuoyuan=(Select id from QX_renyuan where mingcheng='''+Trim(CBBoxchaxuntiaojian.Text)+''')')
else if Trim(CBBoxchaxunziduan.TExt)= '出资单位' then
sql.add(' and qiyebianhao in (select distinct qiyebianhao from gsdj_zijin where chuzidanwei like ''%'+Trim(CBBoxchaxuntiaojian.Text)+'%'')')
else sql.add(' and '+FindFieldName(Trim(CBBoxchaxunziduan.Text))+' like ''%'+Trim(CBBoxchaxuntiaojian.Text+'%'''));
open;
end;
select * from gsdj_jiben where 1=1
你新放一个adoquery,不给它加任何事件,再打开试试(要写sql语句);
问题好像出现在一个lookup字段上!我将它删掉好像就没有问题,据说lookup字段有时候就是不好用?????