• ベストアンサー

Access、マクロの最後に最適化を入れられる?

Access2003を使用しています。 マクロの最後に最適化を組み込むことは可能でしょうか? マクロの内容は、 1、昨日のデータ抽出に使用した作業用テーブル内のデータを削除する 2、本日のデータをインポートしてくる 3、1で空にしたテーブルに、2のデータを追加クエリで流し込む 4、2でインポートしてきたデータ(テーブル)を削除する です。 この後、「5、データベースを最適化する」を入れてマクロを終わらせたいのです。 インポートしてくるテーブルは8個あり、1テーブルに20万を超すデータが入っているため、インポート、追加をやっているうちに、データベースの大きさが1,126,528KBにもなってしまいます。 この後、この大容量のテーブルを使って、大容量のテーブルを作成しているうちに・・・・データベースは更に大きくなってしまい困っています。 マクロの最後に「ここで一旦最適化」を入れられないでしょうか? このデータベースを使用するのは自分で使用するものでないため、「マクロ終了後ツールボタンで最適化する」ということが出来ません。 また、VBAはわからないので・・・出来ればマクロなどで対応できると助かります。 どなたか詳しい方、教えてください!

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

ここら辺が参考になるかな? いずれにせよ「要VBA」です。 http://www.nurs.or.jp/~ppoy/access/access/acM018.html http://www.ka-net.org/office.html Access2007にすると動かなくなることもあるので、コードの 組み方には注意が必要です。手動でやる方が正解なように 私は思いますけど・・・。

noname#118698
質問者

お礼

すっごい早い回答、ありがとうございます! うう~む・・・やっぱりマクロのみでは難しいですか・・・(^^;) VBAは勉強中なんですが、今ひとつ自信がなくて、マクロでなんとかしたかったのですが・・・ せっかくなので、これを機会にVBAを組み込んでみようと思います。 教えていただいたURL、難しそうですが参考にさせていただきます。 ありがとうございました!

その他の回答 (1)

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.2

マクロのみで、となると難しいです。 最適化とは一言で言っても、中身で複雑な処理をしていますから・・。 可能であれば、Accessを Shift + ダブルクリック(もしくはEnterキー) で開いて(ファイルが開くまでそのままShiftキーは押してください。) マクロ→自分の作ったマクロをダブルクリック そこに実行プログラムが書かれているので、それの最下部に http://www.accessclub.jp/samplefile/samplefile_74.htm このサイトを参考に(内容は適宜変更してください。)、最適化の処理を入れるのが手っ取り早いです。 それでないなら、直接的な解決策にはなりませんが、閉じる際に自動的に最適化することは可能です。 上記と同じく、Shift+ダブルクリック(Enter)でファイルを開き、 ツール→オプション→「閉じる時に最適化する」にチェック→適用 で閉じるときに最適化されますが・・・。(すでにしていたらすみません。) とりあえず実践してみて無理でしたら補足お願いします。 できる限りお手伝いします。

noname#118698
質問者

お礼

素晴らしく早い回答、感激です。ありがとうございます。 やはりマクロだけでは難しいのですね・・・ 最初の方のお礼にも書かせていただきましたが、VBAに取り組んでみようと思っています。 ちなみに閉じる際の自動最適化は既にやっているのですが、閉じるまでにすっごい大きさになってしまって・・・最後の最適化もすっごい時間がかかってしまって・・・(^^;) 途中になんとか一回最適化を入れられないかな?って思った次第です。 自分で使うDBならばいくらでも途中で最適化をかけられるのですが・・・パートのおば様数人に使っていただくので、出来る限りボタン一つで動くようなものを作りたいのです。 いくらマニュアルに「ここで最適化をして下さい。最適化の方法はツールバーの~」と詳細に書いても(というか詳細に書けば書くほど?)、馴染みない方には何のことやら訳わからず、となってしまいそうなので。 >とりあえず実践してみて無理でしたら補足お願いします。 >できる限りお手伝いします。 もうすっごい有難うございます!(>_<) ちょっと聞いてみたらこんなに親切なお言葉・・・なんか残業も辛くなくなりそうです。 とりあえずVBAは詳しい方が社内にいるので、彼女に聞きながら頑張ってみます。 本当にありがとうございました。

関連するQ&A