2

時間が経つにつれてフォームが遅くなっていきます。最初は、レコード間を移動するのにまったく時間がかかりませんでした。しばらくすると、1秒かかりました。それからしばらくして、レコードを切り替えるときに2秒かかりました。今、記録を切り替えるときは 3 秒です。

詳細は次のとおりです。

ユーザーは、いくつかのオプションから選択できるフォームでプロンプトが表示されます。これらのオプションに基づいて、メイン フォームがポップアップ表示され、関連するレコードのみが表示されます。メイン フォームは、ユーザーの選択によって生成されたクエリにリンクします。メイン フォームには、別のテーブル (QuoteRunResults) に直接リンクするサブ フォームがあります。現在、テーブルには 354,000 レコードが含まれています。 遅いフォームはサブフォームです。

使用できるクエリの例を次に示します。

SELECT * 
FROM QUOTERun
WHERE QuoteNumber = {UserSelectedQN}
ORDER BY RunID DESC

とにかくサブフォームを高速化できますか?

4

1 に答える 1

2

私は以前にこのような状況を経験したことがあります。ラグを完全に取り除くために私がしたことは次のとおりです。

  • クエリを使用して、両方のフォームに必要な 2 つのデータ セットを生成します。
  • 各データセットの一時テーブルをプログラムで作成し、クエリの結果からデータを入力します
  • フォームを一時テーブルにリンクする
  • ユーザーがデータに対して必要なことは何でもできるようにする
  • フォームが閉じられたら、一時テーブルから実際のデータをプログラムで更新します
  • 一時テーブルを削除する

これにより、実際にフォームが飛びました。ラグの問題はなくなりました。ボタンをクリックして次のレコードに移動すると、すぐに起こりました。私の状況では、フォームの速度を低下させる On Current イベントで多くのことが行われていました。上記を適用すると、すぐに高速化されました。

于 2012-08-10T15:14:48.240 に答える