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からMySQLを操作

WordPressに書いた記事は、MySQLに格納されている。 格納された大量の記事をまとめて修正したいときは、いちいち管理画面から修正するのは疲れる。 今までは、PhpMyAdminでSQLのUPD …

no image

Accessでファイル選択ダイアログを開いて選択したExcelファイルの先頭シートを読み込み番号が一致するデータの配送日を本日日付で消し込む処理

ファイル選択ダイアログを開いて、選択したExcelファイルの先頭シートを読み込み、番号が一致するデータの配送日を本日日付で消し込む処理(楽天販売DB.mdb) ダイアログを表示する際には、事前にMic …

もう何度もAccessの集計クエリの作成をミスって怒られている

私が悪い。反省。 自戒のメモ。 Accessの集計クエリに条件を加えたい場合、その条件をどこに書くかによって結果が全く違ってくる。 それをわかってはいるのだが・・・最大やら演算やら、細かいことを同時に …

Access「実行時エラー3061 パラメータが少なすぎます。2を指定してください」で意外な決着

クロス集計クエリをVBAで読むときで、かつパラメータクエリを使う場合には、クエリのパラメータパネルで、別途、パラメータを指定しなくてはならない(VBAで使わないなら不要) 本日のトラブルは、その後、W …

no image

Accessで DoCmd.RunSQL を CurrentDb.Executeにしたら、1秒高速化した

処理が遅いので速くして欲しいとの要望があったので、コードを調査。 DoCmd.RunSQL を CurrentDb.Execute に置き換えると非同期で実行されるとの情報を得たので、試す。 結果、6 …