- ベストアンサー
最適化について
ACCESS超初心者のものです。 ACCESS97を使用しています。 設計していると、ファイルの大きさがどんどん大きくなってしまい 平気で5M位になってしまいます。 みなさんはどのように対処しているのでしょうか? [ツール][データベース ユーティリティ][最適化]をすると 1/5位になるので、メニューフォームに閉じるボタンを作り それを押すと、最適化してDBを終了するようなことはできるのでしょうか? 教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
私が対応している方法をお知らせします。 1.最適化するためのmdbを作成して対応 自分自身を最適化出来ないので、他のmdbから最適化する為に 最適化したいmdbのあるパスとmdbを指定すれば最適化してくれる 最適化のmdbを作りました。そのmdbを自動で起動するように 終了の際にマクロで指定しています。 2.フリーソフトを使う VECTERのHPで見つけたフリーソフトを使っています。 最適化、BACKUPを行ってくれるソフトで、前記の1と同様に終了時に そのフリーソフトが起動するようにしています。VB5で作られています。 マクロで最適化するmdbを指定してしまうので、ユーザは最適化している 事を意識せずにすむので使い勝手はいいです。 どちらの場合もアプリケーションで最適化のプログラムを起動しますので マシンのインストールの状況に合わせてマクロを修正するか、インストール場所を 限定しなくてはならないという制限があります。
その他の回答 (4)
- yanmaa
- ベストアンサー率45% (207/457)
Ryokuchaさんのご指摘通り起動しているMDBは最適化することが出来ません。 /compactはAccessの起動時に使うオプションで最適化しなさいというコマンドになります。 ヘルプでは"Startup コマンド ライン オプション"と検索すれば説明が見れます。 以下超荒技の最適化方法を提示します。(バッチファイル版) CD "MDBが有るフォルダ" FOR %%FN IN (*.MDB) DO start /w "C:\Program Files\Microsoft Office\Office\MSACCESS.EXE" "%%FN" /Compact このバッチは指定されているフォルダにある全てのMDBファイルを最適化します。
- bin-chan
- ベストアンサー率33% (1403/4213)
設計をなさっている、ということはフォームやレポート等の作成・修正がまだまだ続くんですね。 この場合に、「テーブルなどデータ部」と「フォームやレポートなどのコード部」を分けると便利です。 テーブルを「リンクテーブル」にしておくんです。(別MDBの参照) こうするとバックアップ作成など、楽になりますよ。
お礼
なるほどですね。ありがとうございます。 最適化はどうでしょうか?
- yanmaa
- ベストアンサー率45% (207/457)
ちょっと前に同じような質問が有りますのでこちらを参照して下さい。 キーワードはcompact、バッチファイルです。
お礼
早速の回答ありがとうございます。 >キーワードはcompact、バッチファイルです。 ごめんなさい。バッチファイルはわかりますが、compactの使い方が ヘルプを見たのですけれどよくわかりません。 イベントプロシージャでどのように書くのでしょうか?
私の場合は、別のMDBでVBAからそのMDBを最適化しています。このときにバックアップも自動でとるようにしていますので、一日の業務の終わりには毎回実行してもらっています。 Access2000だと閉じるときに最適化というオプションがあります。
お礼
早速の回答ありがとうございます。 他のMDBではなく、そのMDB自身でできないでしょうか?
お礼
回答ありがとうございます。 >自分自身を最適化出来ないので、他のmdbから最適化する為に・・・ そうなんですか。 ですから、皆さんバッチファイルとかを使用しているのですね。 フリーソフト探したけれど見つかりませんでした。 教えていただけると助かります。