楠部 啓様
ありがとうございます。
Accessのバージョンは 2010 です。
ランタイム版をインストールしているのではなく、通常版です。
また、SP2も適用済みです。
そのため、ダブルクリックすると、通常版の起動となりますので、
コマンドラインより、
Test2010.accdb /runtime
と入力して起動しましたら、Err.Number=2046 が発生します。
> ・ “TEST.xls” ファイルの出力先を変えるとどのようになるか
現在は、C:\Tempの配下に出力しますが、将来的には顧客の任意のフォルダに変更する予定です。
ちなみに、マイドキュメント(C:\Users\aaaaa\Documents)配下にしてみたり、
C:\直下にしたりしても、結果は同じでした。
> ・ レポート “R_TEST” を開いた状態で出力を実行する処理に変更すると、どのようになるか
ランタイム版では、フォームなどを置いていないと、何も出てこないので、
新しく検証用にフォームを作成しました。
出力ボタンを配置し、標準モジュールのOutputRpt()を呼び出します。
実行した結果、フォームに配置したボタンイベントからは、ランタイム版でも、出力できました。
× autoexecマクロ→標準モジュール→XLS出力
○ スタートアップフォーム→ボタンClickイベント→XLS出力
何か、標準モジュールを直接起動することが悪いのでしょうか?
これを踏まえ、
autoexecマクロからは、プロシージャの実行ではなく、フォームを開くに変更してみました。
フォームのOpenイベントで、OutputRpt()を実行後に、Cancel=Trueしました。
これで、ランタイム版でも無事に、出力ができることが確認できました。
私の問題はこれで解決ですが、本来これでよかったのか、いささか疑問が残ります。。。