热情软件屋

 

ADO的Find方法如何查找同时满足两个条件的记录


编号:QA001557
建立日期: 1999年8月20日 最后修改日期:2000年8月1日
所属类别:

Prisoner:
    操作系统:Windows 9x
    编程工具:VB
    问题:
    请问用ADO的Recordset的Find方法如何查找同时满足两个条件的记录?例如,“姓名='abc'”AND“城市='def'”。此外,如果等号右端是变量应该如何写?

回答:

    ADO 1.x/2.0的Find方法是不支持AND、OR这样的逻辑操作符。如果直接使用rs.Find "姓名='abc' AND城市='def'"会产生3001号错误。
    你可以用Clone建立一个Recordset对象,然后利用Filter属性。下面是一个例子
     Public Sub Multi_Find( _
     ByRef oRs As ADODB.Recordset, _
     sCriteria As String)
    
     Dim clone_rs As ADODB.Recordset
     Set clone_rs = oRs.Clone
    
     clone_rs.Filter = sCriteria
    
     If clone_rs.EOF Or clone_rs.BOF Then
     oRs.MoveLast
     oRs.MoveNext
     Else
     oRs.Bookmark = clone_rs.Bookmark
     End If
    
     clone_rs.Close
     Set clone_rs = Nothing
    
     End Sub
    调用方法为
    Multi_Find rs, "姓名='abc' AND 城市='def'"
    至于如果等号右端是变量应该如何写,可以这样:
    Multi_Find rs, "姓名='" +sName +"' AND 城市='" +sCity +"'"
    wgy的意见:
    有时觉得ADO还不如DAO...,要用ADO的话,用SELECT 代替 FIND 吧,挺方便的。
    Programmer的意见:
    据我的经验,不如使用Filter,速度还可以。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio