テーブルをループする VBA スクリプトがありますが、コードの実行中に Access がフリーズすることを除けば正常に動作します。コードが実行されると、フリーズが解除され、すべてが表示されたとおりになります (vba が必要なアクションを実行し、コード化された最終クエリが開きます)。
VBAスクリプトの「進行状況」機能を実装した(または実装したい)ため、これまでは問題ありませんでした。これは、新しい要件により、分析対象のテーブルが約 4,000 レコードから約 50,000 レコードに急増したためです。
これは、レコードごとに更新される単純なモーダル ダイアログ フォームを使用して行いました。
モーダル ダイアログが最初に開きます。
DoCmd.OpenForm ("ProgressReport")
Forms("ProgressReport").Controls("ProgressLabel").Caption = "0 of " & RecordCount & " records analyzed."
次に、各反復の後:
RecordsAnalyzed = RecordsAnalyzed + 1
Forms("ProgressReport").Controls("ProgressLabel").Caption = RecordsAnalyzed & " of " & RecordCount & " records analyzed."
Forms("ProgressReport").Repaint
モーダル フォームに「メモリ」を割り当てて、Access がフリーズした場合でもこれを維持することはできますか? コードは少し複雑ですが、Do Until (EOF) と If ステートメント (非常に基本的な VBA 関数) だけです。この進行状況バーを機能させる方法について何か考えはありますか? モーダル ダイアログの有無にかかわらず。
ステータス バーの編集を検討しましたが、Access がフリーズすると機能しません。