• ベストアンサー

AccessからExcelにエクスポートする時に常に上書きしたい

AccessのテーブルをExcelへ出力する際に、常に同じファイル名で保存する場合、 2回目以降は、上書きするかどうかを尋ねるメッセージが表示されます。 「常に上書きする」と決まっているので、メッセージを表示させたくないのですが、どうしたらいいのでしょうか。 現在、マクロで作成しており、出力の前後に「メッセージの設定」を入れてみたのですが、ダメでした。 VBAなら可能でしょうか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 エクスポートする直前に、元のファイルを削除するか、移動するか、リネームするのはどうですか。(VBAですが) 削除 Kill "C:\エクスポート.xls" 移動 Name "C:\エクスポート.xls" As "C:\移動後\エクスポート.xls" リネーム Name "C:\エクスポート.xls" As "C:\エクスポート_1.xls"

noname#2528
質問者

お礼

maruru01さん、こんばんは。いろいろありがとうございました。 VBAでエクスポートしたExcelファイルを自動起動させる方法がわからなかったので、 マクロで制御して、マクロの中に元ファイルを削除するFunctionプロシージャを挟んで解決しました。 どうもありがとうございました。

その他の回答 (4)

  • souta_n
  • ベストアンサー率33% (79/234)
回答No.5

ricarさんごめんなさい。単純にEnterを押す動作で出来るだろうと思ったのですが、上書き「いいえ」でEnterということになるのですね。 maruru01さん間違いの回答ありがとうございました。 これは補足回答ではなくておわびです。なんか普通のチャットみたいになってしまいました。

noname#2528
質問者

お礼

souta_nさん、こんばんは。ご丁寧にありがとうございます。 お詫びなんてとんでもないです。 VBA初心者の私にとって、OKWEBの皆さんは頼みの綱です。 また機会があれば、よろしくお願いします。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

ちょっと気になったので。 マクロの「メッセージの設定:いいえ」と、VBAの DoCmd.SetWarnings False は同じことなので、どちらかが出来て、どちらかが出来ないということは無いはずですが。 それから、この DoCmd.SetWarnings False は、ダイアログボックスが出たら自動的にENTERを押すという動作と同じなので、今回の「上書き確認」のダイアログでそのままENTERを押すと「いいえ」になり、上書きが出来ないような気がするのですが。 実際に新しいデータで上書きされているか確認してみてはいかがですか。 上書き出来ていないなら、私(No.1)やNo.2の方のように、元のファイルをどうにかするしかないと思いますが。

noname#2528
質問者

お礼

maruru01さん、度重なるご回答ありがとうございました。 恥ずかしながら、maruru01さんのおっしゃるとおりでした。 確認もせずにメッセージがでないと喜んでおりました。 ご指摘ありがとうございました。 元のファイルを消す方向で、チャレンジします。

  • souta_n
  • ベストアンサー率33% (79/234)
回答No.3

VBAでそのイベントプロシージャの最初の1行目に Docmd.SetWarnings False と記述してみてはいかがでしょうか

noname#2528
質問者

お礼

souta_nさん、こんにちは、昨日は回答ありがとうございました。 教えていただきたいことがあります。(基本的なことですみません) マクロで制御していたものをVBAに書き替えました。 Docmd.SetWarnings False を記述すると 上書き確認のメッセージは回避できましたが、 エクスポートしたファイルを自動起動させることができません。 どのように記述すればよいでしょうか?よろしくお願いします。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

VBAを使って、ファイルがあったら、予め削除するとか。 こんな感じ: Const FNAME_EXPO = "export.xls" if Dir( FNAME_EXPO ) <> "" Then Kill FNAME_EXPO

noname#2528
質問者

お礼

osamuyさん、こんばんは。 教えていただいた方法は全然知らなかったので、大変勉強になりました。 VBAって、結構奥が深いですね。回答をいただき本当にありがとうございました。