office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

access使用书签的方法筛选记录

2020-02-18 08:00:00
tmtony8
原创
814

查找记录的控件显示在窗体时,FindRecord方法是一种非常好的搜索方式。

如果要搜索是单个值,可以用《access组合框筛选绑定窗体的记录》方法

但是很多情况下,多个值作为查找条件会使用书签的方法查找记录,如下设计视图


详细源代码:

Private Sub cboQuickSearch_AfterUpdate()
  
  Dim rsClone As DAO.Recordset
  Dim sCriteria As String
  
  Const sSEARCHFLD As String = "[ProductID]"
  
  If Not IsNull(Me.cboQuickSearch.Value) Then

    Set rsClone = Me.RecordsetClone
    
    ' Build the criteria:
    sCriteria = sSEARCHFLD & " = " & Me.cboQuickSearch.Value
    
    ' Perform the search:
    rsClone.FindFirst sCriteria
    
    If Not rsClone.NoMatch Then
        'Synchronize the form's bookmark
        'to the recordset's record:
        Me.Bookmark = rsClone.Bookmark
    End If
    
    rsClone.Close
    Set rsClone = Nothing
    
  End If
  
End Sub

筛选效果如图所示


使用findFirst或者bookmark方法要好于使用findrecord,因为它允许使用更复杂的条件,并且不需要设置被搜索的控件为可见。也不需要将光标定位到某个控件上即可使用。

说明一下,RecordsetClone属性创建的记录集是DAO类型的记录集。只有DAO记录集支持Findfirst、findLast、Findnext、findprevious 方法。

    分享