大家都知道:如用【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