1

ここで明らかな何かが欠けていることを願っています...

新しい Access 2010 アプリケーションの開発を開始したばかりです。個人的でできればシンプルなもの。

最初に行う必要があるのは、ハード ドライブから大量のファイルを読み取ることです。まだ存在しない場合は、テーブルに情報を追加して内容を解析します。

コードは問題なく動作しますが、それは問題ではありません。しばらく時間がかかることがあるので、標準フォームを使用してダイアログ/ポップアップ モードで簡単な進行状況ダイアログを追加しました。FSO.Folder.Files オブジェクトの For Each ループが進行するにつれて、いくつかの情報をいくつかのテキスト ボックスに送信し、Me.Repaint を発行します (DoCmd.RepaintObject acForm、"FormName" も試しました)。

問題は、再描画が応答を停止する前に、プロセスの 5% から 35% を完了することができることです。フォームは 100% になったときにのみ再描画されます。

プロセスは制限付きの再帰を使用します-サブフォルダーがある場合-そのサブフォルダーを処理するためにそれ自体を呼び出しますが、フォルダー構造はかなり線形であるため、それらの多くはありません。

フォームに縛られるものは何もありません。すべてのテーブルの更新は、コード内および RecordSets を介して行われます。

アクセスが応答を停止する理由はありますか?

乾杯、

ロイ

4

1 に答える 1

0

DoEventsの後に追加しRepaintます。これにより、Access は Windows に譲歩し、Windows は保留中のタスクを処理できるようになります。この場合、ディスプレイの更新などです。

Repaint実際、コードがテキスト ボックスを更新する場合、変更を表示するためにフォームが必要な理由がわかりません。代わりにこのようなものを試してください...

Me.MyTextBox = "hello"
DoEvents
于 2013-02-15T15:21:05.997 に答える