MS Access使用FIND按钮将链接表连接到SQLServer

时间:2012-08-09 14:34:52

标签: ms-access sql-server-2008-r2 ms-access-2007

我正在使用MS Access 2007作为前端,并在SQLServer 2008 R2后端中拥有所有链接表。

在Access中的一个表单中,我试图在功能区中执行FIND按钮,或者在表单上创建一个按钮,其目的是在特定字段中查找具有特定值的记录。

当我在FIND窗口中完成输入时,我点击 Find Next 。在某些情况下,会立即找到记录。在其他情况下,只有几个小时才能报告它找不到任何东西(当我知道它应该发现时)。

我正在查看的表中有大约99,000条记录。该字段是否被索引似乎并不重要。

有什么我做错了,或者Access无法处理这个问题?另外,是创建一个存储过程来处理多个搜索请求并将信息传递给Access答案?

2 个答案:

答案 0 :(得分:1)

已知使用ODBC数据源的查找方法很慢。以下是Access 2007 Recordset.FindFirst方法帮助主题所说的内容:

使用Microsoft Access数据库引擎连接的ODBC数据库和大型动态集类型Recordset对象时,您可能会发现使用“查找”方法或使用“排序”或“筛选”属性的速度很慢。要提高性能,请使用带有自定义ORDER BY或WHERE子句的SQL查询,参数查询或检索特定索引记录的QueryDef对象。

此外,将Access表单绑定到99K记录的记录源是一项性能挑战。使用查询作为表单的记录源,并将查询设计为仅返回一行或几行。

为用户提供选择不同行集的选项,并修改表单的记录源属性以反映用户的选择。

答案 1 :(得分:0)

这取决于您需要的搜索类型以及要搜索的列(字段)的数据类型。例如,如果我在索引列中有一个文本数据类型,并且我使用字段开头或整个字段进行搜索,那么它将非常快,但是,如果我搜索字段的任何部分,它可能会很糟糕。换句话说,如果Access可以使用索引进行搜索,它就可以工作,即使在相当大的表上也是如此,否则,你可能最好使用存储过程,尽管我怀疑没有索引也会很快。