MS Access

Accessのフォームを開く際、acHiddenとVisibleの組み合わせで高速化

投稿日:

Accessのフォームを開く際、acHiddenとVisibleの組み合わせで高速化
Accessのとあるシステムで、
フォームを開いてフィルタをセットして実行してさらに並べ替える・・・という処理をしようとしたら、これがなかなか終わらない。
30秒以上かかる。
フィルタしている様子が画面上くるくる変わって処理がかかっている。

以下をためしてみると、確かに画面は更新されない分処理は速いのだが、画面が白くなるので、ユーザーは不安になりそうだ。

Application.Echo True
DoCmd.Echo True 

というわけで、以下に落ち着いた。

DoCmd.OpenForm (フォーム1), acFormDS, , , , acHidden
Forms!フォーム1.Visible = True

acFormDSはデータシートで表示するおまじない、acHiddenは開いたフォームをバックグラウンドで実行して、後述のVisible = Trueで表に見せる。
処理も20秒程度で終わることになった。

DoCmd.OpenForm (フォーム1), acFormDS, , , , acHidden 'acHiddenとVisibleで表示高速化
With Forms!フォーム1
.RecordSource = フォーム1
.Filter = お名前の先頭 in ( rmsg )
.FilterOn = True
.OrderBy = お名前の先頭
.OrderByOn = True
.Visible = True
End With

めでたし。

-MS Access

執筆者:

関連記事

no image

フォームを直接Accessで印刷プレビューし、閉じるときのイベントで処理をしたい

困ったこと: 前提として、自分とこのシステムは、フォームを直接Accessで印刷プレビューして、そのまま印刷できるように作ってある。 しかし、リボンに印刷プレビューを閉じるボタンがある一方で、フォーム …

Accessのオブジェクトをデスクトップに作っておくと超便利

結構、知らない人が多いんじゃないかな。 クエリとか、フォームへの直接のリンクを、PCのデスクトップに作れること。 ユーザーがたくさんいて、その中の一部の人には、閲覧はして欲しいけど、編集はして欲しくな …

no image

Accessで指定テーブル内を全文検索

今まで、特定のフィールド内でしか検索できないものだと思っていた・・・。 Accessのリボンの検索ボタンをクリックして表示されるダイアログボックス内の「探す場所」で特定のテーブル/クエリ/フォーム名か …

no image

Accessクエリでのフィールド名は同じので重複できる

Accessではクエリの中で同じフィールド名を使えない! ・・・とずっと思っていた。 なので、テーブルで使っているフィールド名でクエリの結果を出す必要があった際には、クエリを二つ作ってそれぞれ前処理 …

no image

パラメータクエリにパラメータをセットして実行した結果をデータシートで表示する」というコードの実行で3065エラー

Accessの仕様として、パラメータクエリだけが駄目なのかと思ったら、なんと選択クエリが駄目なのだそう。 理由は、Executeメソッドはアクションクエリのもので、選択クエリのものではないからだそう。 …