• ベストアンサー

アクセスの最適化/修復コマンド

アクセスの「ツール|データベースユーティリティ|最適化/修復」というコマンドですが、これってデータベースを開くたびに自動で行う事は出来ないのでしょうか? データを何も変更せずに閉じて開いて中を見ているだけですが、マクロを実行すると頻繁に「イベント プロパティに指定した式 クリック時でエラーが発生しました」というメッセージが出ます。最適化/修復をやればなおるのですが、いちいち面倒です。

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

  • ベストアンサー
回答No.2

開くときに・・・はありませんが 閉じるときに・・・ならオプション設定の中にありますよ。 図はAccess2010の場合。 頻繁にエラーが発生するということなのでファイルが壊れかかっているのかも? 手動で新規に空のファイルを作り既存のファイルからすべてインポートしてみると 効果があるかもしれません。 また、マクロの中に問題を抱えている可能性も考えられますね。 >このmdbファイルは「二度と正常に開けなくなる」ので、パソコンを強制終了させて、mdbファイルを削除するしかない状態になります。 これは無いと思う。 Shiftキーを押しながら開くとか、新規ファイルに問題になっているモジュールを除外してインポートするとか。 Accessファイルを共有して使用している場合は最適化プロセスの途中で失敗する場合があるので 誰も使っていない時にひっそりと最適化を行った方が無難。 もちろんオプション設定で最適化はしないようにします。

subarist00
質問者

お礼

ご回答ありがとうございます。ありがとうを3つくらい送りたいところです。 「イベント プロパティに指定した式 クリック時でエラーが発生しました」はここ数年間はでっぱなしなので、別の原因があるのかもしれません。これでダメなら手動で最適化し続けるしかないみたいです。

その他の回答 (1)

  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.1

>これってデータベースを開くたびに自動で行う事は出来ないのでしょうか? 自動で最適化は出来ますが「開く時」に自動でやるとハマるので、開く時に自動でやってはいけません。 データベースを開く時に自動実行されるマクロに、最適化するように書くと 1.mdbが開かれて、データベースを開く時に自動実行されるマクロが動く 2.そのマクロに「最適化する」ように書いてあると、一旦、mdbファイルが閉じられて最適化が行なわれ、最適化が終了するとmdbファイルが開き直しされる 3.mdbファイルが開き直しされるので、データベースを開く時に自動実行されるマクロが動く 4.以下、1~3を延々と無限に繰り返し、中断することも、mdbファイルを使うことも出来なくなる と言うワナにハマり、取り返しが付かなくなります。 このmdbファイルは「二度と正常に開けなくなる」ので、パソコンを強制終了させて、mdbファイルを削除するしかない状態になります。 なので「自動的に、自分自身を最適化するマクロ」を作ってはいけません。「何かのボタンを押したら最適化しに行く」という、手動で起動するマクロにするなら大丈夫です。

subarist00
質問者

お礼

ご回答ありがとうございます。Accessって恐ろしい... 追加質問で恐縮ですが ・マクロでやるしかないという事でしょうか? ・ちなみに閉じるときに自動で実行させればいかがでしょうか?

関連するQ&A

  • Accessにてコマンドボタン時にエラー

    Access2003にてメインフォームに様々なボタンを作成し、処理を実行させようとしています。 「クリック時」イベントにマクロを指定する分には問題ないのですが、 コードを選択して実行させると 「イベント プロパティに指定した式 クリック時 でエラーが発生しました:Microsoft AccessがOLEサーバーまたは ActivXコントロールと通信している時にエラーが発生しました。」 の表示がでます。 一旦、コマンドボタンを削除して、1からやり直してみたのですが うまくいきません。 解決方法をご教授ください。

  • アクセスのコマンドボタンについて

    アクセスについて教えて下さい。 コマンドボタンで、フォームのデータをワンクリックで開くように設定したいのですが、コマンドボタンウィザードを使って、 フォームの操作→フォームを開く→フォームを指定 という操作でボタンを作りました。 ですが、ボタンをクリックして操作しようとすると、 「イベントプロパティに指定した式 クリック時 でエラーが発生しました:名前が適切ではありません:(フォーム名)_Click   *マクロ名、ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されています。   *関数、イベント、マクロの評価でエラーが発生しました。」 というメッセージが出てきて、フォームを開くことができませんでした。 ウィザードだけではフォームを開くボタンを作成することはできないのでしょうか? 何か対処があれば教えて下さい。 よろしくお願いいたします。

  • 長文:このデータベースは予期しない状態のため 修復できません

    OS:Windows2000&XP Access Version:2000と2003 よろしくお願いいたします。 ACCESSファイルオープン時開くことができません。 表示メッセージは このデータベースは予期しない状態のため、開くことができません。 このデータベースは、[ツール]メニューの[データベースユーティリティ]の[変換]コマンドではなく、DAOのCompactDatabaseメゾットを使って、以前おバージョンの形式から変換されています。このため、データベースの一部が正しく変換されません。 元のデータベースがあるときは、[ツール]メニューの[データベースユーティリティ]をポイントし、[変換]をクリックして、データベースを変換してkださい。テーブルとクエリ以外のデータベースオブジェクトを回復することはできません。 Access2003とAccess2000のマシン共同でアクセスしていましたが、急に上記メッセージが表示されファイルオープンできなくなりました。 Access2000,2003にて修復(表示のメッセージに従って)してみましたが実行されませんでした。 長文になり申し明けありませんが、よろしくお願いいたします。

  • Access2000でデータベースの最適化

    お世話になります。 Accessのマクロのコマンドで データベースの最適化をしたいのですが、 「マクロまたはVisual Basicコードの実行中に、開いているデータベースを最適化することはできません。」とういうエラーメッセージが出て最適化されません。 マクロの一連の流れの「最後」で、データベースの最適化をしたいと 思っていますが、具体的にどのようにすれば、 データベースの最適化を実行できるのでしょうか? 条件としては、最適化をVBAなどでするのではなく、  マクロのコマンド:データベースの最適化 でしたいと思っております。 「マクロのコマンド:データベースの最適化」があるので、 必ずできるはずだとおもうのですが、 何卒宜しくお願いします。

  • Accessのメニュー画面

    windows XP・Access2330でデータベースを作成し、メニュー画面にフォームを開くボタンをコントロールウィザードを使用してコマンドボタンで作ったのですが、開こうとすると「イベントプロパティに指定した式 クリック時でエラーが発生しました:不正な文字です。」*マクロ名、ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されています。*関数、イベント、マクロの評価でエラーが発生しました。というエラーがでて開けません。フォーム自体は開いてデータも入力する事が出来、データベースとしてはちゃんと動いてくれているのですが・・・何が原因でどう対処したらいいのか教えていただけますか?

  • Accessフォームのコマンドボタンの制御について

    Accessフォームにコマンドボタンを付けて、マクロを実行させようと考えています。 コマンドボタンを順に押してもらうために、最初は、1個目のコマンドボタンだけ 押せるようにしたいのですが。 つまり、コマンドボタンのプロパティの「データ:使用可能」の「はい」、「いいえ」を、 マクロ内で切り替えたいのですが、やり方がわかりません。 どなたか、この辺のマクロの使用例をお教え下さい。 宜しくお願い致します。

  • アクセスでデータベースファイルが開けなくなってしまいました。

    アクセスファイルを開こうとしたら「修復の必要性があるか、もしくはデータベースファイルではありません。」というようなメッセージが出てきました。 そこでツールからデータベースユーティリティを選び、最適化/修復を行ったら所、「修復できません。データベースファイルではありません。」と出てしまいます。 こうなると完全にアクセスファイルは開けなくなるのでしょうか? もしも改善策があるようでしたら教えて下さい。 宜しくお願いします。

  • Access2000:コマンドボタンの不具合

    ウィザードで作成したコマンドボタンが、環境によっては下記のエラーメッセージが表示され機能しません。 ************ イベントプロパティに指定した式クリック時でエラーが発生しました:xxx(ファイル名)がOLEサーバーまたはActiveXコントロールと通信しているときにエラーが発生しました。 *マクロ名、ユーザー適宜関数名、[イベントプロシージャ]以外の式が指定されています。 *関数、イベント、マクロの評価でエラーが発生しました。 ************ ボタンは「フォームを開く」で特定のレコードのみ表示するように設定したものです。(ウィザードでできること以外は設定してありません) OS/Accessのバージョンが同じPCで開いても、一つは問題なく機能するが、もう一つは上記のエラーが出たりします。 今まで特に問題がなかった自分のPCもオフィスを再インストールしたところ、上記の状態になってしまいました。 ボタンを作り直しても同じ状況です。 コマンドボタン、ファイル、アクセス、PCのどの設定にどのような問題があるのか分かりましたら教えていただけないでしょうか。よろしくお願いいたします。

  • Accessのマクロの最適化

    Accessでマクロを1つ新規作成します。 作成したマクロのアクションに、「コマンドの実行」を選択し、 画面下のコマンドには、「データべースの最適化」を選択します。 しかし、「マクロまたは、VisualBasicコード実行中に開いているデータベースを最適化することはできません。」とメッセージが出ます。 メッセージの意味はわかりますが、そもそも、なぜ、マクロに、 「データベースの最適化」を選択することができるのでしょうか? できないんじゃ意味ないんじゃないですか?

  • コマンドラインについて

    アクセスのコマンドラインで、最適化をしようと思います。ショートカットを作成し、/compact で最適化元データベース、最適化先データベースを指定し、実行すると、確かにデータベースは最適化されましたが、それと同時に、というか、最適化実行後にそのままデータベースを起動されるには、どうしたらいいのでしょうか? ヘルプの/compact にも、「最適化をし、アクセスを終了します」とあります。これを終了しないでデータベースを使用したいのですが… ユーザーにとっては2度手間ですよね。いい方法を教えてください。 それと、ついでに、バックアップも同時に行いたいと思いますが・・・コマンドラインのようにできますか?よろしくお願いします。Access97を使用しています。

専門家に質問してみよう