我想知道是否有人对我有任何建议,基本上我们正在使用文本框进行搜索,但这会导致一些问题。我们有一个列表框,其行源设置为相当于 select * from tblSearch where searchField Like " " & [Forms]![frmNames]![txtSearch].[Text] & " "
此查询将 Max Rows 设置为 25,并且所有表都是链接到 SQL Server 的表。在搜索文本框的 On Change 事件中,它在列表框上运行重新查询,一切似乎都像疯了一样,除了数据库每天都在为用户挂起,这让我发疯了!
基本上研究了这一点,我将其归结为 Access 正在将 select 语句发送到 SQL(在同一台服务器上),但没有等待每个查询完成并在继续之前对其进行处理。因此,在 Access 从服务器返回响应之前,用户键入下一个字符并触发对 SQL 的新查询。在 SQL Server 中,您会发现资源等待“ASYNC_NETWORK_IO”的挂起查询,我理解这是客户端不使用来自 SQL Server 的数据。
我必须做的是将用于重新查询的事件从 On Change 更改为 afterupdate,这确实会影响具有排序或“Google Instant”搜索体验的整个用户体验,因为他们必须在看到之前键入并按 Enter结果,不好看!
所以这就是问题所在,只是想知道是否有人有任何建议,我现在已经没有想法了!