2012-08-09 48 views
2

我使用MS Access 2007作爲前端,並擁有SQLServer 2008 R2後端中的所有鏈接表。MS Access使用FIND按鈕將錶鏈接到SQLServer

在Access中的表單中,我嘗試執行功能區中的FIND按鈕,或者通過在表單上創建按鈕來表示在特定字段中查找具有特定值的記錄。

當我在FIND窗口中完成條目時,我點擊查找下一個。在某些情況下,記錄立即被發現。在其他情況下,只能報告幾個小時才能找到任何東西(當我知道它應該)時。

我正在查看的表格中大約有99,000條記錄。這個字段是否被索引似乎並不重要。

有什麼我做錯了,或訪問無法處理這個?另外,創建一個處理多個搜索請求並將信息傳遞給訪問答案的存儲過程?

回答

0

這取決於您需要的搜索類型以及要搜索的列(字段)的數據類型。例如,如果我在索引列中有一個文本數據類型,並且使用起始字段或整個字段進行搜索,但是它會很快,但是,如果我搜索字段的任何部分,它可能會崩潰。換句話說,如果Access可以使用索引進行搜索,即使在相當大的表上,它也可以工作,否則,對存儲過程來說可能是最好的,儘管我懷疑沒有索引也會很快。

1

使用ODBC數據源已知查找方法速度慢。以下是訪問2007 Recordset.FindFirst方法幫助主題說:

當Microsoft Access數據庫引擎連接的ODBC數據庫和大型動態集類型的Recordset對象時,您可能會發現使用Find方法或使用排序或篩選財產緩慢。爲了提高性能,請使用帶有自定義的ORDER BY或WHERE子句,參數查詢或QueryDef對象的SQL查詢來檢索特定的索引記錄。

此外,將Access表單綁定到99K記錄的記錄源是一項性能挑戰。使用查詢作爲表單的記錄源,並設計查詢以僅返回一行或幾行。

爲用戶提供選擇不同的行集的選項,並修改表單的記錄源屬性以反映用戶的選擇。

相關問題