MS Access

Accessのフォームをデザインしようとすると固まる

投稿日:

タイミングとしては、フォームをデザインビューにした直後、プロパティシートをクリックしたとき。それだけで数十秒待たされる。
原因は、なんとなく、気が付いている。
ついさっき、フォームで使っているクエリに、重い処理がかかる関数を書いたからだ。
調べたら、確かにそこでもたついている(Ctrl-Breakするとその関数でStopする)。
しかし、通常の入力編集のビューならともかく、デザインビューでは、そのクエリを読み込むことが無いはず、理屈では。だってデータそのものはその場では表示していないから。

試したこと1:
データベースのオプション-現在のデータベースで、名前の修正オプションをオンオフしてみた。
結果:変わらなかった。固まる。

試したこと2:
関数内に、If CurrentProject.AllForms!frmデータ入力.IsLoaded Then ~ として、フォームが読み込まれているときだけその関数が走るようにした。
結果:ほとんど変わらなかった。固まる。

試したこと3:
フォームのレコードソースをプロパティシート上では削除したうえで、そのフォームの読み込み時(Form_Load)イベントで、フォームのレコードソースを読むようにした。


Private Sub Form_Load()
Me.RecordSource = “販売と発注ショート” ‘フォームに連結しているクエリ内の関数読込に時間がかかる対策
End Sub


結果:速くなった。

ということで、今回も対症療法的な解決。

-MS Access

執筆者:

関連記事

Shopify(Matrixify)でスケジュール化したJobのキャンセル

どうしても方法を見つけられなかったが、ふと画面に目を落とすと、あった、方法が。 焦ると視野が狭くなって、なかなか気が付かないんだよなあ、こういうの。 You have 4 scheduled jobs …

no image

AccessでNot in だと Null が抽出されないのは

以下のページに詳しく。 ACCESS クエリ 条件以外のレコードを抽出するには? – Access(アクセス) 解決済 | 教えて!goo <http://oshiete.goo.n …

no image

フォーム テンプレート

Accessのフォームを作るときに、「フォーム テンプレート」を使う方法があること、知っている人は多いのかな? 既存のフォームにあるテキストボックスの色やサイズなどの設定(プロパティ)を引き継いで、新 …

no image

Accessであらかじめリンクテーブルを開いておくと劇的に高速化

リンクテーブルに対して「Dlookupで値を探して見つかったらCurrentDb.Execute UPDATE~ で値を更新」という処理をループで回している。 この処理、一旦始めると、終えるのに30分 …

no image

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

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