本范例使用 Recordset 对象的 Find 方法来定位 Pubs 数据库中的业务标题,并对其进行计数。本范例假设基本提供者不支持相似的功能。
Public Sub Main()
    FindX
End SubPublic Sub FindX()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim  As Variant
Dim count As Integercount = 0
cnn.Open "DSN=Pubs; Provider=MSDASQL; uid=sa; pwd=;"
rst.Open "SELECT title_id FROM titles", cnn, _
            adOpenStatic, adLockReadOnly, adCmdText' The default parameters are sufficient to search forward
' through a Recordset.rst.Find "title_id LIKE 'BU%'"' Skip the current record to avoid finding the same row repeatedly.
' The book is redundant because Find searches from the current
' position.Do While rst.EOF <> True    'Continue if last find succeeded.
    Debug.Print "Title ID: "; rst!title_id
    count = count + 1        'Count the last title found.
     = rst.Book      'Note current position.
    rst.Find "title_id LIKE 'BU%'", 1, adSearchForward, 
Looprst.Close
cnn.Close
Debug.Print "The number of business titles is " & countEnd Sub

解决方案 »

  1.   

    Find 方法
          搜索 Recordset 中满足指定标准的记录。如果满足标准,则记录集位置设置在找到的记录上,否则位置将设置在记录集的末尾。语法Find (criteria, SkipRows, searchDirection, start)参数criteria   字符串,包含指定用于搜索的列名、比较操作符和值的语句。SkipRows    可选,长整型值,其默认值为零,它指定当前行或 start 书签的位移以开始搜索。searchDirection    可选的 SearchDirectionEnum 值,指定搜索应从当前行还是下一个有效行开始。其值可为 adSearchForward 或 adSearchBackward。搜索是在记录集的开始还是末尾结束由 searchDirection 值决定。start    可选,变体型书签,用作搜索的开始位置。说明criteria 中的“比较操作符”可以是“>”(大于)、“<”(小于)、“=”(等于)、“>=”(大于或等于)、“<=”(小于或等于)、“<>”(不等于)或“like”(模式匹配)。 criteria 中的值可以是字符串、浮点数或者日期。字符串值以单引号分界(如“state = 'WA'”)。日期值以“#”(数字记号)分界(如“start_date > #7/22/97#”)。如“比较操作符”为“like”,则字符串“值”可以包含“*”(某字符可出现一次或多次)或者“_”(某字符只出现一次)。(如“state like M_*”与 Maine 和 Massachusetts 匹配。)。
      

  2.   

    find方法里的各个参数是什么意思,如果我采用这种方法查找的话,在数据显示控件里是不是光标就会停留在查找到的记录上了?