

ACCESS数据库
对ADO记录集进行多列查找
2013-07-12 16:26:31
我们在操作数据库的时候,一般会用到ADO操作,而且在ADO记录集查找记录中,我们都会用到“find”方法。
这种方法只能查找出一列。往往不能满足我们的要求。
下面的函数, 直接调用:Multi_Find <ADO记录集>, <查找条件> 即可进行多列操作
'============================================================================
'
'-函数名称: 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