|
初心者です。
今、あるフォームにエクセル、CSV出力ボタンを設け、
画面のデータをエクセルへ出力するようにしています。
エクセルへ出力する内容は、
クエリーで抽出した内容そのままです。
保存先を指定する「ダイアログ」を表示させて、
ファイル名を入力し、保存ボタンを押して、保存します。
又、既存のファイルに対しても、
「上書きしますか?」とメッセージが表示され、
上書き保存が可能です。
ここまでは正常に内容を出力できました。
問題は「既存のファイル」に対して、
上書きを行う時に、
そのファイルが開いている(オープン中の)場合です。
その場合、エラーが発生してしまいます。
エラー箇所は、
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, 「クエリー名」, 「保管先+ファイル名」, True
で、
エラー番号:3010
エラー内容:テーブル「クエリー名」は既に存在しています。
です。
何か、良い回避方法がありますか?
On Error GoTo
で、強制的に?回避をしようやってみましたが、
開いているエクセルに対して、更新がかかったのか、
内容がクリアされてしまいます。
更には、次にエクセルを起動しようとすれば、起動できなくなっています。
(タスクマネージャーからEXCELを終了させれば、起動出来ましたが・・・)
又、既に開いているファイルを検索して、
(上書きの)指定したファイルと同じファイル名が存在していれば、
処理を行わないようなロジックを組みましたが、
上手くいきませんでした。
どんな方法でも結構ですので、
どなたか、宜しくお願い致します。
|
|