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でコンボボックスのリストをVBAで行番号で選択する

こんな方法があるのは知らなかった。 メモメモ。 ‘コンボボックスの1行目を選択する ‘Forms!見積請求書F.cbo銀行振込先 = Forms!見積請求書F.cbo銀行振込先.ItemData(0) …

no image

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

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

no image

Accessで、見積書のような「サブフォームつきフォームを丸々コピー」する方法・・・見つけるのに、四苦八苦。

最初、複雑でかつ読み取り専用のクエリを元にしたフォームをコピーしようとしていたために、 acCmdPasteAppendのラインで「コマンドまたはアクション”追加貼り付け”は無効です」のエラーが出て、 …

no image

AccessでレポートにMeキーワードを含む場合のコードの共通パーツ化

Accessで、レポートにMeキーワードを含む場合の、コードの共通パーツ化・標準モジュールへのまとめ化に悩んでいたら、こういう記事を見つけた。 標準モジュールで「Meキーワードの使用方法が不正です」 …

no image

VBAで英字混じりの引数から数字のみを取り出す関数

たとえば、abcABC123456XYGという引数から、123456のみを取り出したい。 VBAの組み込み関数で、適当なのがありそうだけど、無いみたい。 カスタム関数を作るにも、これはという情報がググ …