這篇文章主要介紹了Acess數(shù)據(jù)表分頁的兩個具體的解決方法,詳細內(nèi)容請參考下文。
后臺數(shù)據(jù)庫用是Access,客戶用了一年后說打開界面非常慢,查看了數(shù)據(jù)庫后發(fā)現(xiàn)數(shù)據(jù)表中的記錄已有五萬多條,自己試過將記錄復制到10 萬條,打開界面非常慢,翻頁也是同樣的問題,我采用的方式是每頁裝入20條記錄,循環(huán)寫在表格中顯示出來,再定四個翻頁鍵用來查看數(shù)據(jù),但問題是雖然是 每次裝入頁面的記錄只有二十條,但每次要打開記錄集時還是必須一次性裝入所有的記錄,所以才慢。
解決方法一:
1.設置一個自增長字段.并且該字段為INDEX.
2.由于是 ACCESS ,所以,只能是前臺分頁.自增長字段目的,就是為了實現(xiàn)分頁功能.
1> 記錄用戶前頁的最后一個 自增值 ,例如 M .
2> 下一頁,取下一頁的開始值.M+1 ,結束值: M+1+1.5*PAGESIZE (注:由于數(shù)據(jù)庫會有增刪操作,故應該取頁大小應該有一個系數(shù),你可以根據(jù)情況自定一個1大的系數(shù).
3> 前臺循環(huán)取 RS 的前 PAGESIZE 條, 寫到一個 新的RS中,并返回.
注:新的RS是一個無連接的RS .
解決方法二:
十萬條記錄不是 Access 數(shù)據(jù)庫的極限。何況你的方法不是真正意義上的分頁(應當利用 PageSize 和 AbsolutePage 屬性)。
VBScript code
Set rs = New ADODB.Recordsetrs.CursorLocation = adUseClientrs.PageSize = 20rs.Open "Select * From 客戶", iConc, adOpenKeyset, adLockOptimisticlngPages = rs.PageCountlngCurrentPage = 1
此時打開的記錄集只有 20 條記錄。
翻頁時:
VBScript code
If lngCurrentPage < lngPages Then lngCurrentPage = lngCurrentPage + 1 rs.AbsolutePage = lngCurrentPageEnd If
更多信息請查看IT技術專欄