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

執筆者:

関連記事

no image

「抽出条件 フォーム access not in クエリ」とか「forms access in 抽出条件 複数」とかでググっても出てこなかったので、メモ

Accessでフォームからクエリに抽出条件をパラメータで渡すやり方が分からなくて、数時間苦労。 このタイトルがGoogleの肥やしになって、このサイトに来てくれる人が増えれば。。。 要するに私がやりた …

no image

Accessの再クエリーでデータが移動してしまうのを解消

仕事メモ。 メイン・明細フォームのときは、 http://www.sanryu.net/acc/tips/tips323.htm を参考に、 Dim m_offset As Long ‘レ …

no image

Accessでレポートを印刷したいのにフォームが印刷されるトラブル

現象:全てではなく特定のPCで、チェックリストを出力しようとすると、バックで開いているフォームがプリントされる。 毎回起きるトラブルではなく、うまく出るときもある。 最初の対策:以下のブログを参考に、 …

no image

DoCmd.GoToRecordよりもMe.SaveよりもMe.Refresh

Accessで、一旦フォーム上のレコードを保存したいとき、 Me.Save とやってもレコードが保存されない。 そこで、今までは、DoCmd.GoToRecordで無理矢理レコードを移動して保存してい …

no image

VBAで忘れてしまっていたことと、知らなかったこと

STOPステートメント: ブレークポイントを設定しないでもその行でコード処理を止めることができるので、Access終了->Access起動といったシチュエーションで使える。 Randomizeステート …