你不是把第一次查出来存到 list1 里面吗?
用VB查的时候,不从数据库里查,也可以在这些 list 里面查!!

解决方案 »

  1.   

    我知道可以从list里查,不过我还是想知道从数据库怎么查
      

  2.   

    两种方法:
    第一种方法:
    你将第一次查询的结果(符合条件的记录)写到一个recordset对象中(比如:定义一个recordset对象:fristRS),第二次查询时,你就用fristRS中的记录就行了,不用再从原始的表中进行查询。第二种方法:
    创建一个临时表,将第一次的查询结果保存到临时表中,第二次查询时对该临时表进行查询就行了。朋友,祝你成功!!!
      

  3.   

    两种方法:
    第一种方法:
    你将第一次查询的结果(符合条件的记录)写到一个recordset对象中(比如:定义一个recordset对象:fristRS),第二次查询时,你就用fristRS中的记录就行了,不用再从原始的表中进行查询。第二种方法:
    创建一个临时表,将第一次的查询结果保存到临时表中,第二次查询时对该临时表进行查询就行了。朋友,祝你成功!!!
      

  4.   

    两种方法:
    第一种方法:
    你将第一次查询的结果(符合条件的记录)写到一个recordset对象中(比如:定义一个recordset对象:fristRS),第二次查询时,你就用fristRS中的记录就行了,不用再从原始的表中进行查询。第二种方法:
    创建一个临时表,将第一次的查询结果保存到临时表中,第二次查询时对该临时表进行查询就行了。朋友,祝你成功!!!
      

  5.   

    chenyu5188(蓝色情调) :你说的第二种方法我去试试,我大概明白了.也知道如何操作,第一种方法.能写些代码吗?我知道了,但是不会写代码.谢谢你
      

  6.   

    dim cn as adodb.connection
    dim fristRS As ADODB.Recordset,secondRS as ADODB.Recordset
    dim sqlstr as string
    Set cn = New ADODB.Connection
    set fristRS=new adodb.recordset
    set secondRS=new adodb.recordset
    cn.Provider="microsoft.jet.oledb.3.51"                             cn.ConnectionString = App.Path & "\图书.mdb"
    cn.open
    sqlstr="select * from 图书表  where 出版社 like" & "'%" & text1.text  & "%'"
    fristRS.open sqlstr,cn,adopenkeyset,adlockoptimistic
    if fristRS.bof and fristRS.eof then
        msgbox "查无此记录!!!",48,"提示"
        exit sub
    else
       set secondRS.datasource=fristRS'将第一次查询的记录放到另一个记录集对象中
       List1.Clear
       Do Until rs.EOF
          List1.AddItem rs.Fields("书名") & rs.fields("出版社")
          rs.MoveNext
       Loop
    end if
    ..............................
    ..............................
    ..............................
    第二次查询时你用rcordset对象的filter属性来进行查询!filter相关资料:
    为 Recordset 中的数据指示筛选条件。
    设置或返回变体型值,该值包含以下某项内容: 
    条件字符串 — 由一个或多个用 AND 或 OR 操作符连接的子句组成的字符串。
    书签数组 — 指向 Recordset 对象中记录的唯一书签值数组。
    以下某个 FilterGroupEnum 的值。 
    常量         说明 
    AdFilterNone 删除当前筛选条件并恢复查看的所有记录。 
    AdFilterPendingRecords 允许只查看已更改且尚未发送到服务器的记录。只能应用于批更新模式。 
    AdFilterAffectedRecords 允许只查看上一次 Delete、Resync、UpdateBatch 或 CancelBatch 调用所影响的记录。 
    AdFilterFetchedRecords 允许查看当前缓冲区中的记录,即上一次调用从数据库中恢复记录的结果。 
    AdFilterConflictingRecords 允许查看在上一次批更新中失败的记录。 
    说明
    使用 Filter 属性可选择性地屏蔽 Recordset 对象中的记录,已筛选的 Recordset 将成为当前游标。这将影响基于当前游标返回值的其他属性,如 AbsolutePosition、AbsolutePage、RecordCount 和 PageCount,因为将 Filter 属性设置为特定值可将当前记录移动到满足新值的第一个记录。条件字符串由 FieldName-Operator-Value 格式(如“LastName = 'Smith'”)的子句组成。可以创建用单独的 AND(如“LastName = 'Smith' AND FirstName = 'John'”)或 OR(如“LastName = 'Smith' OR LastName = 'Jones'”)子句连接而成的混合子句。对于条件字符串请遵循以下规则: FieldName 必须为 Recordset 中的有效字段名。如果字段名包含空格,必须用方括号将字段名括起来。
    Operator 必须为:<、>、<=、>=、<>、= 或 LIKE。
    Value 是用于与字段值(如 'Smith'、#8/24/95#、12.345 或 $50.00)进行比较的值。字符串使用单引号而日期使用井号 (#),对于数字,可以使用小数点、货币符号和科学记数法。如果 Operator 为 LIKE,Value 则可使用通配符。只允许使用星号 (*) 和百分号 (%) 通配符,而且必须为字符串的尾字符。Value 不可为 Null。
    AND 和 OR 在级别上没有先后之分。可使用括号将子句分组。但不能象以下示例那样先将由 OR 联接的子句分组然后将该组用 and 联接到其他子句。
    (LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'
    与之相反,可以构造如下形式的筛选:
    (LastName = 'Smith' AND FirstName = 'John') OR (LastName = 'Jones' AND FirstName = 'John')
    在 LIKE 子句中,可在样式的开头和结尾使用通配符(如 LastName Like '*mit*'),或者只在结尾使用通配符(如,LastName Like 'Smit*')。 
    例如,通过允许您只查看上一次 UpdateBatch 方法调用中影响到的记录,筛选常量使其更易于解决处于批更新模式中单个记录冲突。
    设置 Filter 属性本身可能会因与现行数据发生冲突(如某记录已被其他用户删除)而失败。在此情况下,提供者将返回对 Errors 集合的警告但不停止程序执行。只有在所有需要的记录上发生冲突时才产生运行时错误。使用 Status 属性可定位发生冲突的记录。
    将 Filter 属性设置为零长度字符串 ("") 与使用 adFilterNone 常量具有同样效果。一旦设置 Filter 属性,当前记录位置将移动到 Recordset 中已筛选记录子集中的第一个记录。类似地,清除 Filter 属性后,当前记录位置将移动到 Recordset 的第一个记录。
      

  7.   

    谢谢chenyu5188(蓝色情调) 我去试试,
      

  8.   

    为什么要分两次查呢,把两个条件用AND来连起来不是一次就可以搞定了吗?
    select .... from database where cbs like '%清华%' and sm like '%vb%'
      

  9.   

    老兄SELECT语句是可以嵌套用的
      

  10.   

    chenyu5188(蓝色情调) :您说的第1种方法,你在做第二次查询的时候,能把大致的代码也写一下吗?万分感谢!!
      

  11.   

    tgc99((小兵冲锋陷阵)) 嵌套语句是怎样用的?能够给我举个例子吗?
    谢谢啦
      

  12.   

    使用记录集的Filter属性
    如Rs.Filter="出版社 like '%清华%'"
    Rs.Filter="书名 like '%vb%'"
      

  13.   

    给你一个嵌套的写法:
    select * from 图书表 where 出版社 in (select 出版社 from 图书表 where 书名 like '*VB*') and 出版社 like '*清华*'
      

  14.   

    谢谢 sanmui() , jo_yoko(jo_yoko) ,太感谢了,我去试试,