MS-Accessレポートは、実行時にデザインビューを表示します
-
06-07-2019 - |
質問
MS Accessレポートでレポートを作成し、データを取得してMS-Word形式でレポートを表示するVBAコードを作成しました。 ただし、実行時にレポートを生成する間、レポートは最初にレポートデザインビューを数秒間表示またはフラッシュし、レポートが生成されます。
レポートの生成中にこのデザインビューの点滅を回避する解決策を見つけたいと思います。このMS-AccessまたはVBAコーディングで可能ですか? ??
アクセスフォームコードからアクセスレポートを呼び出すために使用した行を投稿しています。
DoCmd.OpenReport rst![引数]、acPreview
これによりレポートが生成されますが、実行中にデザイン画面が数秒間点滅します。
また、アクセスレポートにVBAコードが記述されていません。
実際の実行では、一時アクセステーブルにデータを準備し、テーブルからレポートを生成しています。
ここでの問題は、レポートをプレビューモードで起動しているときに、レポートのデザイン画面に数秒表示されることです。これはユーザー側から見ると悪いように見えます。
解決
このコードを試すとどうなりますか:
Dim strReport As Report
strReport = rst!Argument
If SysCmd(acSysCmdGetObjectState, acReport, strReport) Then
DoCmd.Close acReport, strReport
End If
DoCmd.OpenReport strReport, acPreview
このコードは、レポートがビューで既に開いているかどうかを確認し、開いている場合は閉じてから開きます。これにより、ウィンドウが非表示のデザインビューではなくなります。
また、コードは、レコードセットからOpenReportコマンドに値を渡すことに関連する可能性のあるByRef参照の問題を回避します。
他のヒント
一部のプロパティを変更するために、デザインビューでレポートを開いているようです。これを回避することも可能かもしれませんが、レポートを開くコードを投稿して確実に言う必要があります。
レポートをMS-Wordにどのようにエクスポートしますか?コードは何ですか?
VBAコードを使用する代わりに、単純なレポート(テーブルデータソース)で同じことを試しましたか? VBAの実行に非常に時間がかかっているため、レポートをデザインモードで開いたままにしておくと、知覚できるほど長くなります。
VB6アプリケーションからMS Accessレポートを呼び出すと、同じことが起こります。私の場合に起こるのは、起動時に表示されるように設定されたフォームがあるためです。スタートアップフォームを選択していない場合、スタートアップフォームは表示されないため、点滅しません。
これが役立つかどうか教えてください。
マイク