1

MicrosoftAccessフォームのパフォーマンスの問題を修正する必要があります。ページには、クエリを使用するデータソースがあります。クエリはいくつかのテーブルを結合し、合計を行います。問題は、ページが読み込まれるときに、フォームがQueryColumn='ImplossibleValue'のようなダミー値を使用してempty.listを表示することです。フォームには、検索条件フィルターと検索ボタンが含まれています。検索ボタンをクリックすると、正しいフィルターが設定されます。

クエリは大量のデータを処理するため、最初はページの読み込みが非常に遅くなりますが、フォームを開くと、デザインとして空白のクエリが表示されます。フォームを開いてデータソースを持たないようにする方法はありますか?

4

3 に答える 3

3

レコードソースを、Null値を返し、テーブルを参照する必要のないクエリに変更できます。

SELECT Null AS field1, Null AS field2;

ユーザーが検索条件を選択したら、レコードソースをそれらの条件を組み込んだクエリに変更します。レコードソースを変更すると、自動的に再クエリがトリガーされます。

レコードソースが検索クエリに変更された後にユーザーがフォームデザインを保存すると、フォームは次に開いたときに再びそれを使用します。フォームを開くイベント中にそのプロパティをリセットすることにより、レコードソースとしてダミー行クエリを使用してフォームを常に開くように強制できます。

Me.RecordSource = "SELECT Null AS field1, Null AS field2;"
于 2011-10-21T15:45:52.960 に答える
0

フォームを開くときは、docmd.openformステートメントでwhere条件を使用してください。ここで、primarykey = nullの場合、レコードはなく、フォーム全体のバインドを解除する必要はありません。

于 2013-02-26T21:50:25.730 に答える
-1

私は10年前にJetで同様のパフォーマンスの問題を抱えていましたが、私が見つけた唯一の解決策はAccessDataProjectsに移行することでした。

SQL Serverを使用してクライアントサーバーアプリケーションにアップサイズし、いくつかのクエリウィザードを実行して適切なインデックスを決定すると、すぐに優れたパフォーマンスが得られます。

于 2012-02-23T20:22:18.360 に答える