バックエンド データベースは Access で、1 年間使用した後、インターフェイスを開くのが非常に遅いとのことで、データベースを確認したところ、データ テーブルに 50,000 件を超えるレコードがあることがわかりました。数千のレコードがあるため、インターフェイスを開くのが非常に遅く、ページをめくるのも同じ問題があります。私が採用した方法は、ページごとに 20 レコードをロードし、それらをループで記述してテーブルに表示し、次に 4 つのページめくりキーを設定することです。データを表示するには、ページに毎回 20 レコードしかロードされないにもかかわらず、レコード セットを開くたびにすべてのレコードを一度にロードする必要があるため、時間がかかるという問題があります。
解決策 1:
1.自動インクリメントフィールドを設定します。フィールドはINDEXです。
2. ACCESS であるため、フロントエンドページングにしか使用できません。自己増加フィールドの目的はページング機能を実現することです。
1> ユーザーの前のページの最後の自己インクリメント値 (M など) を記録します。
2> 次のページでは、ページの開始値を取得します。M+1、終了値: M+1+1.5*PAGESIZE (注: データベースには追加操作と削除操作があるため、ページ サイズの係数が必要です) . 状況に応じて大きな係数1をカスタマイズできます。
3> フロントエンド ループは RS の最初の PAGESIZE バーを取得し、それを新しい RS に書き込み、戻ります。
注: 新しい RS はコネクションレス RS です。
解決策 2:
10 万レコードは Access データベースの制限ではありません。さらに、このメソッドは本当の意味でのページングではありません (PageSize プロパティと AbsolutePage プロパティを使用する必要があります)。
VBScript コード
次のようにコードをコピーします。
rs = 新しい ADODB.Recordset を設定します。
rs.CursorLocation = adUseClient
rs.ページサイズ = 20
rs.Open Select * ゲスト、iConc、adOpenKeyset、adLockOptimisticlng から
ページ = rs.PageCount
lng現在のページ = 1
現時点でオープンされているレコード セットには 20 レコードしかありません。
ページをめくるとき:
次のようにコードをコピーします。
lngCurrentPage < lngPages の場合
lng現在のページ = lng現在のページ + 1
rs.AbsolutePage = lngCurrentPage
終了の場合