当记录类型为动态集时,Ms Access 表单搜索框太慢

问题描述 投票:0回答:1

我在数据表视图中有一个拆分表单。用户经常使用表单底部的内置搜索框。如果表格是

RecordsetType=Snapshot
,那么搜索速度非常快。如果
RecordsetType=Dynaset
那么速度非常慢。

我使用以下代码制作了自己的文本框作为搜索框。有进步但不像以前那样

RecodsetType=Snapshot
:

Private Sub txtSearch_Change()
On Error GoTo ErrorHandler
    Dim searchText As String
    Dim sql As String
    searchText = Me.txtSearch.Text
    
    Dim rs As Recordset 'default DAO recordset
    Set rs = Me.RecordsetClone
    rs.FindFirst "[f1] like '*" & searchText & "*'"
    If Not rs.NoMatch Then
        Me.Bookmark = rs.Bookmark
    Else
        MsgBox "Not Found!"
    End If
    Me.txtSearch.SetFocus
    Me.txtSearch.SelStart = Len(searchText)
Exit Sub
ErrorHandler:
    MsgBox "Error Number: " & Err.Number & vbCrLf & Err.description
End Sub

表格有

AllowAdditons=False
并且只有一个检查字段需要更新。因此,我想搜索一下是否可以拥有数据表或连续未绑定表单,并通过 VBA 操作仅对一个字段进行更新。但我只找到了单一形式。

更新

  1. 我找到了这个。但它没有说明它是关于单一还是连续的表格或数据表。它没有说明记录集类型。我试过了,没用。
  1. 理想的情况是具有带有可编辑控件的快照绑定形式,并使用 vba 与当前连接发出 sql UPDATE 来保存更改。但当它处于快照中时,控件不可编辑。
vba ms-access ms-access-2016
1个回答
0
投票

如果您只需要修改一个复选框,则使用快照表单和默认搜索。然后添加一个按钮以通过代码切换复选框值。

© www.soinside.com 2019 - 2024. All rights reserved.