AccessのフォームをExcelに出力
いつもお世話になっております。
現在、Access2003でDBを作成中です。
"テーブル1"をパラメータクエリで抽出します。"クエリ1"。
そのクエリを基にフォームを作成しています。"フォーム1"。これは抽出して印刷したり、Excelに出力するために作成しました。レポートではなく、フォームにした理由は、コマンドボタン等を配置できることからです。
Excelに出力する際のVBAでつまづいてしまいました。
DoCmd.OutputTo acOutputForm, "フォーム1", acSpreadsheetTypeExcel9
これで問題なく出力できています。が、、、
Access2007の一部のPCでこれを実行するとエラーが出ます。
原因は"OutputTo"が含まれているとエラーになるようです。
ちなみにエラーは「現在出力しようとしているオブジェクトの形式は無効です。」
「2007 Office スイート Service Pack 2」こちらをインストールすると良いそうなのですが、だめでした。
WindowsXP、Office2007はこのVBAだとエラーになります。
WindowsVista、Office2007は正常に使えました。
PCの何か設定?と考えたりもしたのですが、はっきりとした原因がわからないのでは、他の人にDBを使っていただけないので、エラーにならないVBAでいきたいです。
もうひとつ、
mFileName = InputBox("ファイル名を入力してください。")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "フォーム1", mFileName
こちらのVBAはクエリの出力だとうまくいくのですが、フォームだとだめでした。
クエリから抽出して保存すれば良いのですが、理想はこの形です。
1.フォーム1を開くと「担当者を入力」とパラメータクエリが働き、抽出結果をフォーム1に表示される。
2.[出力]ボタンを押すと、ダイアログボックスが開いてファイル名を指定して保存する。または、ダイアログボックスが開かなくても名前を指定できれば良いです。最悪、指定できなくても良いですが、原因となる、"OutputTo"を避けたVBAでいきたい。
3.mFileName = InputBox("ファイル名を入力してください。")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "クエリ1", mFileName
これだと、1.でパラメータクエリで抽出結果をフォームに表示させて、2.で[出力]ボタンを押すと、また、パラメータクエリで抽出しなければならなくなるのでできれば避けたいです。
こちらの条件でご教授お願い致します。
また、WindowsXP、Office2007でエラーが出ましたので、これを解決する方法でも良いです。
よろしくお願い致します。
お礼
やはり特定のシートに出力は無理ですか。 そういうにできるマクロとかがあればいいんですが。 ともかく、ありがとうございました。