今年に入ってからも、afRepo(Access VBA 帳票エンジン)の改良を続けています。その中で、Access 標準レポートの挙動について、改めて気づかされる点がありました。
①例えば、500ページ程度の帳票をプレビュー表示した状態で、画面左下の標準コントロールバーから 「最後のページ」 を選択すると、かなり待たされるケースがあります。
②また、Access の標準検索機能が afRepo では使えないという点も、仕様とはいえ、少し割り切れないところでした。
こうした点を考えた結果、新しい「コントロールバー」を追加することにしました。業務システムではごく普通の子画面かもしれませんが、Access レポートの世界では、異色なアプローチです。
現在の afRepo では、約 2700 ページの帳票でも、最終ページを約 5 秒で表示。一方、Access 標準の非常にシンプルなレポート構成でも、最終ページ表示に数分かかるケースを確認しています(ページ前後移動は比較的速いのですが)
なんだかんだ
意図せず、処理速度の面で Access 標準レポートと比較される立場に入ってしまいました。VBA なので遅くても構わない(当然遅い)、と思っていたのですが・・・
プレビュー画面を開いたままでは VBA から再描画できない仕様のため、一旦閉じて開く方法になるのは残念な点です。ただ、普通に考えて、最終ページを約 5 秒で表示できるのであれば、その前の1ページに戻るのに同じくらい時間がかかるのはおかしいと思われます。
運用時には、追加した「コントロールバー」の価値は、最大限高くなります。ページ前後移動については 0.5 秒以下 を目標に挑戦する予定です。レポートエンジンのコア部分を見直すことになりますが、言うのは簡単でも、なかなか手ごわいところです。
次回ブログをアップする際には、結果をご報告できると思います。