• ベストアンサー

Accessのデータベースが開かなくなりました

初めて質問させていただきます。 いつものようにアクセスを使って名簿を整理していたのですが、「認識しません」というエラーメッセージが出てファイルが開かなくなりました。 ファイルを開こうとすると「このデータベースは予期しない状態のため開くことができません」と出ます。 その下に「このデータベースはツールメニューのデータベースユーティリティーの変換コマンドではなくDAOのCompactDatebaseメソッドを使って以前のバージョンの形式から変換されています。このため、データベース一部が変換されていません。」と表示されます。「元のデータベースがある場合はデータベースユーティリティーの変換をクリックして、変換してくださいとありますができません。 データベースは97で作成したものを2003で使っていました。 何か解決策はあるのでしょうか?

noname#12666
noname#12666

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>DAOのCompactDatebaseメソッドを使って以前のバージョンの形式から変換・・ DAOとはMicrosoft Data Access Objects(DAO)のことです。CompactDatebaseメソッドは例えばAというAccessファイルを最適化しBというAccessファイルを作成する機能です。Access97はDAOという方法を使ってデータベースとのやり取りの記述を書いてます。Access2000以降はADOを使っています。 97側で何らかの最適化が行われて一部だけ最適化されていない状態のような・・。 >バックアップは取っておいたのですが古いままでしたので そのバックアップを使い2003形式か2000形式に変換して使用すれば良いと思いますが。 バックアップのまたバックアップを取っておいてからAccessを起動しツールのデータベースユーティリティにあるデータベースの変換を選びファイル形式を選択しバックアップのファイルを選べば変換して使えるようになります。97と共有するような場合は97形式でないとダメですが使用する環境に合わせてファイル形式を選んでください。

noname#12666
質問者

お礼

バックアップした後に入力した新しいデータはまた入れ直すことにします。データはAccess2003に変換しました。 分かりやすい説明ありがとうございます。少しですが理解できました。これからはこまめにバックアップを取っておきます。 >97側で何らかの最適化が行われて一部だけ最適化されていない状態のような・・。 この場合は何らかの解決策はあるのでしょうか?

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>97側で何らかの最適化が行われて一部だけ最適化されていない状態のような・・。 >この場合は何らかの解決策はあるのでしょうか? 通常ではCompactDatebaseを使うとMdb全部を最適化するはずなのですが・・。一部だけ最適化されないということはないはずです。 例えば最適化処理中にAccessが落ちたとかPCが落ちたとか中途半端な状態でファイルが壊れてしまった。とかだと思うのですが実際に確認してみないと不明です。 97でMbdの修復をすると直る可能性があると思います。しかし修復できないほどファイルに損傷があればダメです。

noname#12666
質問者

お礼

>例えば最適化処理中にAccessが落ちたとかPCが落ちたとか中途半端な状態でファイルが壊れてしまった。とかだと思うのですが実際に確認してみないと不明です。 作業中に「入力規則エラー」のようなメッセージが出て、よく分からなかったのでAccessを終了しました。 >97でMbdの修復をすると直る可能性があると思います。しかし修復できないほどファイルに損傷があればダメです。 ファイルを作成したパソコンを引っ張り出して「修復」をしようとしましたが出来ませんでした。 初心者の私に何度も丁寧に教えていただきありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

Accessはバージョンによって別物といっていいと思いますよ。 基本的に異なるバージョンで使用する場合はバックアップを作成することをお奨めします。 確実ではありませんが、新規のデータベースを作成後に 外部データの取り込み(インポート)でそのDBのすべてを取り込んでみてください。

noname#12666
質問者

補足

バックアップは取っておいたのですが古いままでしたので、どうにかしたいと思っていました。 新規のデータベースを作成してインポートを試みましたが、「予期しない状態のため、開くことができません」となります。エクセルでインポートしようとしても同じでした。 メッセージの中に「DAOのCompactDatabaseメソッドを使って以前のバージョンの形式から変換されています。」とありますが、どういう意味なのでしょうか? 勉強不足ですみません。

関連するQ&A

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

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

  • ACCESSが開かない

    ACCESS97からACCESS2000に変換して使用していたのですが、急に「このデータベースは不正な状態のため、開くことができません」というメッセージで開かなくなりました。 「このデータベースは、「ツール」メニューの「データベースユーティリティ」の「変換」コマンドではなく、DAOのCompactDatabaseメソッドを使って、以前のバージョンの形式から変換されています。このため、データベースの一部が正しく変換されていません」というメッセージも出ています。 このACCESSは前の担当者から引き継いだためまだ内容がよくわからない上、ACCESS97時代からのデータが蓄積されているようです。なんとか開くことはできないでしょうか。よろしくお願いします。 ちなみにバックアップはありません。

  • ACCESSのデータベースが起動できない

    はじめまして。お世話になります。 さて、タイトルどおりなのですが、どなたか解決法をご存知の方がいらっしゃいましたら教えてください。もしかして簡単な質問であったら申し訳ありません。その際は、その旨ご指摘いただければ幸いです。 さて、問題になっているのは会社で使用しているデータベースで、当日私は現場にいなかったのですが、他の社員がどうやらLAN環境の中の2台のクライアントマシンで同時に起動したみたいなのです。 聞くところによると、A氏の作業中にB氏が同じファイルを開いてしまい、慌ててすぐに閉じた。その際に何かメッセージが出てきて質問されたらしいのですが、内容を読まずに「はい」にしてしまったようです…。 それが原因か確証はありませんが、前日までは問題なく動作していたこと、その事故のあった翌日に起動しなくなったこと、を考えるとかなり怪しいです。 どなたか助けていただけないでしょうか…。 参考までに、以下に起動時に出てくるメッセージを原文のまま掲載します。 このデータベースは不正な状態のため、開くことができません。 このデータベースは、[ツール]メニューの[データベースユーティリティ]の[変換]コマンドではなく、DAOのConpactDatabaseメソッドを使って、以前のバージョンの形式から変換されています。このため、データベースの一部が正しく変換されていません。 元のデータベースがある時は、[ツール]メニューの[データベースユーティリティ]をポイントし[変換]をクリックして、データベースを変換してください。元のデータベースがないときは、新しいデータベースを作成し、データが保存されているテーブルやクエリをインポートして下さい。テーブルとクエリ以外のデータベースオブジェクトを復旧することはできません。

  • SP2に戻したい

    PC初心者で分からないので教えてください。 SP2からSP3にしたところ、インストールされていた、会計ソフトが起動しなくなりました。 エラーメッセージは・・・ 「このデータベースは不正な状態のため、開くことができません。 このデータベースは[ツール]メニューの[データベースユーティリティ]の[変換]コマンドではなく、DAOのCompactDatabaseメソッドを使って、以前のバージョンの形式から変換されています。このため、データベースの一部が正しく変換されていません。 元のデータベースがあるときは、[ツール]メニューの[データベースユーティリティ]をポイントし、[変換]をクリックしてデータベースを変換してください。元のデータベースがないときは、新しいデータベースを作成し、データが保存されているテーブルやクエリをインポートしてください。テーブルとクエリ以外のデータベースオブジェクトを復旧する事はできません。」 と表示されます。 どこから何を開けばいいのか、手順が全くわかりません。SP2に戻せば元の戻るのかと思っていますが、それもよくわからないので、どうか教えていただけると助かります。 また、SP3のまま会計ソフトをもう一度インストールすれば起動できるのでしょうか? よろしくお願い致します。

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

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

  • Access97からAccess2003にバージョンアップするには

    お世話になります。 ネットでAccess97からAccess2003にバージョンアップを調べています。 簡単にバージョンアップできるのだと考えていましたが大間違いでした。 「Startup コマンド ライン オプション」で一括変換(97→2000)というサイトを見つけましたがどのように実行すればいいのでしょうか? http://www.accessclub.jp/bbs2/0021/beginter07051.html また「Microsoft Access Conversion Toolkit」というツールがある事を知りました。 試しにインストールしてチェックしてみたら、エラーがなかったのでAccess2003を起動してメニューバーの「ツール」→「データベースユーティリティ」→「データベース変換」→「Access2000 ファイル形式」を選択し、ダイアログでファイルを選択して[変換]ボタンを押下したら下記のメッセージが表示されました。 データベースの変換または復元をしているときにコンパイルエラーが発生しました。 これは、現在はサポートされていない、古いDAO構文によるものと思われます。 コードの修正方法の例を参照するためには[ヘルプ]をクリックしてください。 [OK]ボタンを押下したら、再度下記のメッセージが表示されました。 変換中にエラーが発生しました。エラーの詳細を見るには、[変換エラー]テーブルを開いてください。 再度、[OK]ボタンを押下したら、またメッセージが表示されましたので[OK]を押下しました。 変換されたAccessファイルを実行して[変換エラー]テーブルを開いたら下記の内容が追加されていました。 オブジェクトの種類|オブジェクト名|エラーの説明 モジュール    |       |"データベースの変換または復元をしているときにコンパイル エラーが発生しました。これは、現在はサポートされていない、古い DAO 構文によるものと思われます。コードの修正方法の例を参照するには [ヘルプ] をクリックしてください。" どのようにAccess97からAccess2003にバージョンアップすればいいのでしょうか。 一般的にバージョンアップする手順はどれなのでしょうか。 似た質問をして申し訳ありませんがアドバイスいただけませんでしょうか。 宜しくお願いします。

  • Microsoft Accessについて

    *Microsoft Access95から2000にバージョンアップしま したら以下のメッセージが出てきてしまいました。 解決方法を教えて下さい。 データベース"ファイル名"のオブジェの設定を変更することはできません。 このデータベースは以前のバージョンのMicrosoft Acces sで作成されています。 このデータベースをMicrosoft Accessの現在バージョン の形式に変換するにはデータベースを閉じ「ツール」メ ニューの「データベースユーティリティ」をポイントし 、「変換」をクリックします。 *ところが「ツール」メニューの「データベースユーテ ィリティ」をポイントし、「変換」をクリックしようと したらグレーになっていてクリックできませんでした。 それから又、以下のメッセージが出てきます。 "イベントプロジャ"マクロを見つけることができません。 マクロ(またはマクログループ)が存在しないか、新規 マクロが保存されていません。 "マクログループ名.マクロ名"という構文でマクロ名を指 定するときはマクログループ名を指定する必要があります。 *質問が長々となりましたが宜しくお願いいたします。

  • ACCESS97からACCESS2000

    ACCESS97で作ったMDBをACCESS2000で修正できません。 「ツール」メニューの「データベースユーティリティー」をポイントして「変換」をクリックというメッセージが表示されますが、「変換」のところが非表示になっています。 どうしたらACCESS2000で修正できるのでしょうか?

  • Access データベースではありませんの障害

    ご存知の方がいらっしゃいましたら、ご教示ください。 accessを開いた時に、 【データベース’ファイルパス\ファイル名'は修復する必要があるか、データベースではありません】 とメッセージが表示され、”はい”か”いいえ”を選択する画面で”はい”を選択すると、 【データベースの形式'ファイルパス\ファイル名'を認識できません】と表示。OKを選択すると、 【データベース’ファイルパス\ファイル名'は修復できないか、データベースではありません】 と出てきて修復ができませんでした。 accessの【ツール】⇒【データベースユーティリティ】⇒【最適化/修復】を選択して修復を 試みましたが、最初の”修復する必要があるか、データベースではありません”のメッセージが表示されます。 また、新規accessファイルを開き、インポートしようとしても、同じメッセージが出て開けません。 他に修復、または、テーブルなどの抽出ができる方法はないでしょうか・・・?

  • Accessデータベースの最適化をExcelVBAでやりたい

     レコードの追加・削除を繰り返して重たくなったAccessデータベースを軽くするために、手作業で「ツール→データベースユーティリティ→最適化」とやっているのですが、これをExcelVBAで自動化したいのです。  ADOのコマンドでできるのでは?と勝手に考えているのですが、どうなんでしょうか?  ExcelVBAから可能でしたら、どのように書けばよいか教えてください。  なお、ADOの知識は非常に乏しいのですが、「ConnectionオブジェクトやRecordsetオブジェクトを定義して、レコードの追加・削除を行う」程度なら分かります。(逆に言うとそれくらいしか分かりません…)  平易な言葉でお教えいただけると助かります。よろしくお願いいたします。

専門家に質問してみよう