试一下用一个嵌套的SQL句吧,如果你使用的是SQL SERVER的话,可以建立一个储过程,代码如下:
select * from 表名 where 日期 between (2003-1-1,2003-1-20) and 你的字段(select * from 表名 where 你要搜索的字段=XXX值)
你试一下吧

解决方案 »

  1.   

    chenyu5188(蓝色情调) 
         我也是想象你说的将第一次查询的结果放到一个临时表中但如何操作烦劳将操作代码提供  谢谢
      

  2.   

    可以使用Data1.RecordSet的下述方法
    FindFirst     条件   从第一条记录开始向后查找
    FindLast      条件   从最后一条记录开始向前查找
    FindPrevious  条件   从当前记录开始向前查找
    FindNext      条件   从当前记录开始向后查找
      

  3.   

    db.Execute "select aa,bb into Tabeltemp From Table"
    rs.open "select * from tabeltemp where aa='%55' ",db
      

  4.   

    Dim db As Database
    Dim bb As QueryDefSet db = DBEngine.OpenDatabase("yourdbfile")
    Set bb = db.CreateQueryDef("bb", "select * from abc where 日期 between # " & Text4.Text & " #  and  # " & Text5.Text & " #  ")
    Data1.RecordSource = "select * from bb where 摘要 = '市内1' or 摘要 = '市内2' or 摘要 = '市外1' or 摘要 = '市外2' "
    ...
    ...
    db.QueryDefs.Delete "bb"随手写的不一定对。
    思路是先创建一个查询,再执行。
    执行完后别忘记删除查询,不然下次再用就会出错了。
      

  5.   

    bb = "(select * from abc where 日期 between # " & Text4.Text & " #  and  # " & Text5.Text & " # ) v1 "Data1.RecordSource= "select * from " & bb & " where 摘要 = '市内1' or 摘要 = '市内2' or 摘要 = '市外1' or 摘要 = '市外2' "
      

  6.   

    "select *  into ##temp from abc where 日期 between # " & Text4.Text & " #  and  # " & Text5.Text & " #  "
    "select * from ##temp  where 摘要 = '市内1' or 摘要 = '市内2' or 摘要 = '市外1' or 摘要 = '市外2' "
    "drop table ##temp "
    记着用完了别忘了删除临时表。
      

  7.   

    使用Recordset的Filter属性和Data1.RecordSet属性对一个已有的Recordset记录集对象(假设为rst)用Filter属性可以在原来的查询结果中进行再次查询
    rst.filter="select * from bb where 摘要 = '市内1' "
    Set Data1.Recordset=rst执行完filter语句后,rst中是满足再次查询条件的所有记录,如果需要使用原来的记录集,就需要在再次查询前保存原记录
    dim rstNew as Recordset
    set rstNew=rst
    rstNew.Filter
    Set Data1.Recordset=rstNew
      

  8.   

    qbilbo(风之兄) 以解决了我的问题,谢谢各位的答复