有两个ADOQuery组件,其中adoquery1中已有数条记录,现想用adoquery2对某
Access表进行查询,提取只要表中‘姓名’字段值等于adoquery1中任何一条记录的‘姓名’字段值,如何实现???

解决方案 »

  1.   

    adoquery2.close;
    adoquery2.sql.clear;
    adoquery2.sql.add 'Select * from Table1 where 姓名 in(select 姓名 from Table2)'
    adoquery2.open;
      

  2.   

    同意楼上!
    楼主如果借用adoquery1的话需要循环,效率不好
      

  3.   

    adoquery2.close;
    adoquery2.sql.clear;
    adoquery2.sql.add 'Select * from Table1 where 姓名 in(select 姓名 from Table2)'
    adoquery2.open;
      

  4.   

    adoquery2.sql.add 'Select * from Table1 where 姓名 in(select 姓名 from Table2)'这样又要搜索table2,因为table2中所需的记录已经在adoquery1中了,有没有办法只要根据adoquery1中所有记录的‘姓名’字段进行查询?
    有更好的方法吗?
      

  5.   

    var
     SqlString:String;//提取AdoQuery1的Sql语句
     SqlString :='select * from Table1 where 姓名 in '+'select 姓名 from';
     SqlString :=SqlString+AdoQuery1.sql.text;