模块/类模块
Access支持对ADO记录集进行多列查找
2017-06-26 17:45:54

大家都知道:如用【Find 方法】在ADO记录集查找记录,只能进行单列的操作。下面的函数(Multi_Find)支持多列查找,希望对有需要的朋友有所帮助。调用方法: Multi_Find <ADO记录集>, <查找条件>示      例:  Multi_Find rst, "国家= '中国' AND 城市 = '深圳'"                  If  Not rst.EOF() Then                         MsgBox "找到指定条件的记录。"                  Else                         MsgBox "指定条件的记录不存在。"                  End IF

详细函数

'============================================================================

'

'-函数名称:  Multi_Find

'

'-功能描述:  Find 方法是单列的操作,本函数支持多列查找。

'

'-输入参数:  objAdoRst ........... 必选,ADO记录集

'             strCriteria ......... 必选,文本,查找条件

'

'-输 出 值:  ADO记录集(objAdoRst)的记录指针

'

'-示    例:  Multi_Find rst, "国家= '中国' AND 城市 = '深圳'"

'             If  Not rst.EOF() Then

'                 MsgBox "找到指定条件的记录。"

'             Else

'                 MsgBox "指定条件的记录不存在。"

'             End If

'

'-作    者:  鱼儿游游

'-创建日期:  2012-12-17

'-联系方式:  my_mail@163.com   QQ:7178000

'============================================================================

Public Sub Multi_Find(ByRef objAdoRst As Object, ByVal strCriteria As String)

    Dim rstClone As Object

    

    '生成ADO记录集变量

    Set rstClone = CreateObject("ADODB.Recordset")

    

    '复制指定的记录集

    Set rstClone = objAdoRst.Clone

    

    '对ADO记录集按指定条件进行筛选

    rstClone.Filter = strCriteria

    

    '判断筛选结果

    If rstClone.EOF Or rstClone.BOF Then

        '没有找到相应记录,记录指针移到文件结束处

        objAdoRst.MoveLast

        objAdoRst.MoveNext

    Else

        '找到相应记录,把指定记录的记录指针移到相同的位置(复制的记录集)

        objAdoRst.Bookmark = rstClone.Bookmark

    End If

    

    '释放对象变量内存

    rstClone.Close

    Set rstClone = Nothing

    

End Sub