注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gb.qin

A Man's心靈的港灣

 
 
 

日志

 
 

如何按照AdoQuery中的查找(LookUp)字段进行数据过滤?(集)  

2009-09-28 16:15:53|  分类: Delphi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

procedure   TForm1.BitBtn1Click(Sender:   TObject);  
  var  
    Ptmp:string;  
    Ltmp:string;  
  begin  
    Ptmp:=adotable1.FieldByName('aaa').KeyFields;  
    LTmp:=adotable1.FieldByName('aaa').LookupDataSet.FieldByName('Pkey').AsString;  
    adotable1.Filter:=ptmp+'='''+Ltmp+'''';  
    adotable1.Filtered:=true;  
  end;

注:

把table   改为   query。其主要思路好下:  
  一、取得lookup字段的主键名  
  二、从lookup字段对应的数据集找到lookup对应的关键值  
  三、进行过滤

//---------------------------------------------------------------------------------------------------------------

procedure   TForm1.ADOQuery1FilterRecord(DataSet:   TDataSet;  
      var   Accept:   Boolean);  
  begin  
      if     DataSet.FieldByName('a').AsString=Edit1.Text   then    
            Accept   :=   true  
      else    
            Accept   :=   false;   //a为lookup字段  
  end;

procedure   TForm1.Button1Click(Sender: TObject); 

begin 

if ADOQuery1.Filtered then
    ADOQuery1.Filtered:= false;
ADOQuery1.Filtered:=true;

end;

注:OnFilterRecord是和Filter事件一样的,只有Filtered=true时才生效。(試過,很有效~)

  评论这张
 
阅读(678)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017