• ベストアンサー

Accessで97形式のファイルのデータを2000形式に変換してしまった。

社内でAccess97と2000を共有しているのですが、97のデータを 2000で開いたときに、誤って2000に変換して開いてしまったようです。 97側で開くと Form、******メニューが不正 (*****はフォームの名称) と表示され、開かず 2000からだと問題なく開きます。 以前過去ログにあった http://oshiete1.goo.ne.jp/kotaeru.php3?q=306289 を、参考にしようと思ったのですが、どうやらVBで動作しているらしく >Access2000でmdbを開いている状態で >[ツール]→[データベースユーティリティ]→[データベースの変換]→[Accessの旧バージョンの>データベースに変換]を順に選択して保存するとAccess97で開くことができます。 で、試そうとしたのですが、なぜか[データベースの変換]が表示されません。 開く時も自動で起動し、ツールバーの[ツール]が立ち上げて1秒くらいで消えてしまいます。 どのような設定をされているのか分りませんが、このDBの作成者が辞めてしまい、 Accessを解る人がいない状態です。私もまだ初心者で初級~中級で、実務 レベルではありません。VBが解らないといけないのかも知れないのですが。 他のAccessのDBとも連動(テーブルをリンクしている)しているので、 むやみにデータを取り出して入れ直すことも知識不足で手が出せない状態です。 2000に変換したDBファイルを97に戻す方法。 2000から [データベースの変換]→[Accessの旧バージョンの>データベースに変換]を順に選択して保存する  までを表示させる方法は無いでしょうか? アドバイス宜しくお願いします。

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

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

>1)で確認です。 >暫定で別フォルダのコピーで問題mdbファイルを上書きして進めて問題なければ、 >マスターのフォルダ内のデータには反映されず、マスターは変更されないと >考えてよろしいでしょうか? 別フォルダにコピーした場合、別フォルダをマスターとして、元々のフォルダーでテストする必要があります。 なぜなら、リンクは絶対参照となっているために、コピー先ではリンクが切れてしまうからです。 つまり・・・ フォルダーA にマスターのMDBが入っているとします。 その場合、フォルダーAをコピーしてフォルダーBを作り、フォルダーAでテストを行ってください。 テストが問題なければフォルダーBをフォルダーAに戻してください。 2)の件はそのようになっていれば問題はありません。 確かに最初のエラーの原因がつかめないので、現状使えるMDBでテストをして問題なければそれで良しとするほかないかもしれませんね。

nishizaki
質問者

お礼

ありがとうございました。 長時間にわたり、ほぼマンツーマンでのご対応いただきいろいろとお世話になりました。 とりあえず、現状の状態で、不具合は見受けられません。今後も、また質問させて頂く事が有るかとおもいますが、その時もよろしければお付き合い願います。 本当に、親切なご対応に感謝いたします。お礼と締め切りが遅くなり申し訳ございませんでした。

その他の回答 (5)

回答No.5

1)リンクの件ですが、今回は関係ありません。基本的にMDBの名前と置いてあるフォルダが変わらなければ実態が変わったとしても問題ないはずです。 2)Databaseの件ですが、通常ですとDAOで使用するオブジェクト型です。それで正しく参照されていればDatabaseといように最初だけが大文字になるはずです。新旧共に、VBAの画面を開いて、[ツール]-[参照設定]を開き、「Microsoft DAO 3.* Object Library」にチェックされているかどうか確認してください。

nishizaki
質問者

お礼

ありがとうございました。 長時間にわたり、ほぼマンツーマンでのご対応いただきいろいろとお世話になりました。 とりあえず、現状の状態で、不具合は見受けられません。今後も、また質問させて頂く事が有るかとおもいますが、その時もよろしければお付き合い願います。 本当に、親切なご対応に感謝いたします。お礼と締め切りが遅くなり申し訳ございませんでした。

nishizaki
質問者

補足

度々回答いただきありがとうございます。 1)で確認です。 暫定で別フォルダのコピーで問題mdbファイルを上書きして進めて問題なければ、 マスターのフォルダ内のデータには反映されず、マスターは変更されないと 考えてよろしいでしょうか? 2)「Microsoft DAO 3.* Object Library」にチェックの件 Dは半角小文字の方は大文字でした。すみません。 問題mdbファイル Microsoft DAO 3.51 bject Library (DATEBASEの方) 97→2000→97のmdbファイル Microsoft DAO 3.6 Object Library3.6 (Datebaseの方) で両方ともチェックが入っていました。

回答No.4

そうしますと、最初に出たエラー「Form、******メニューが不正」が鍵になると思います。 恐らくその一番元になるMDBが残っているはずなので、そのMDBのデータベースウィンドウを表示させ、97→2000→97と変換させたMDBのデータベースウィンドウも表示させ、クエリやフォームやモジュールなど全く一致しているかどうか比較してみたらよいと思います。 あるいは問題となったフォームのVBAコードを全て比較してみたらいいと思います。そうしたら、「少なくとも1つのAccess97のオブジェクト、ライブラリが足りません。」のエラーの解決に少しは近づけるのではないでしょうか。 それ以上の事は実物を見てみないと何ともいえません。根気強くバグ探しをしてみてください。

nishizaki
質問者

お礼

ありがとうございました。 長時間にわたり、ほぼマンツーマンでのご対応いただきいろいろとお世話になりました。 とりあえず、現状の状態で、不具合は見受けられません。今後も、また質問させて頂く事が有るかとおもいますが、その時もよろしければお付き合い願います。 本当に、親切なご対応に感謝いたします。お礼と締め切りが遅くなり申し訳ございませんでした。

nishizaki
質問者

補足

ありがとうございます。 テーブル、クエリ、フォームなど全て同じ名前で揃っていました。 個々のデータまでは未確認です。 2点だけお聞かせください。 「システム」名のフォルダーに4つのdbmファイルがあり、それがリンクされています。 その中の一つ 物件ID登録.mdb が今回の問題ファイルです。 1)この「システム」フォルダーごとコピーして 物件ID登録.mdb を97→2000→97と置き換えた ファイルに上書きして使用した場合、大元の「システム」ファイルとのリンクは関係ありませんか? 2)モジュールが一つあってその中のプログラム(?)での相違点で 問題のmdbファイルは Dim myDB As DATEBASE となっていて 97→2000→97のmdbファイルは Dim myDB As datebase と、半角小文字と半角大文字の違いが有ります。 プログラム内ではどちらのファイルも全角なら全角、半角なら半角で統一されていますが、 小文字大文字はバグと関係ないでしょうか? VBはまったく分からないので、変な質問かもしれませんが、宜しくお願いします。

回答No.3

一応確認なんですが、本当にAccess2000へ変換したのでしょうか。通常、97⇔2000の変換を行った場合、別名で保存する事になりますから、変換前のファイルが残るはずです。 Access2000のファイルを97で開こうとすると、もっと違うエラーメッセージで全く開けないはずです。 Access97のファイルを2000で開いた場合、[データベースの変換]が選択できない状態になります。 それで、もしかしたらファイルは変換されておらず、Access97形式のままである事が考えられます。 Access97でShiftを押しながら開く事は可能でしょうか。もしそうならば、確実に変換されていません。 97で開くときに出るエラーは別の原因が考えられないでしょうか?

nishizaki
質問者

お礼

ありがとうございました。 長時間にわたり、ほぼマンツーマンでのご対応いただきいろいろとお世話になりました。 とりあえず、現状の状態で、不具合は見受けられません。今後も、また質問させて頂く事が有るかとおもいますが、その時もよろしければお付き合い願います。 本当に、親切なご対応に感謝いたします。お礼と締め切りが遅くなり申し訳ございませんでした。

nishizaki
質問者

補足

ありがとうございます。 >一応確認なんですが、本当にAccess2000へ変換したのでしょうか。通常、97⇔>2000の変換を行った >場合、別名で保存する事になりますから、変換前のファイルが残るはずです。 確かに今、別の97のファイルで試したら、別ファイルで保存するになりました。 >Access97でShiftを押しながら開く事は可能でしょうか。もしそうならば、確実に変換 >されていません。 可能でした。 >97で開くときに出るエラーは別の原因が考えられないでしょうか? 仰る通りなので、そうかもしれません。 どのような、原因かわからなくなりました。 一応、こちらでNo2の回答の補足後に試したことで 問題のdbファイルをコピーして、2000の入っているPCに保存、問題のdbファイル(コピー)を2000でshift同時押しで開き、ファイルを一旦閉じます。そして、[ツール]→[データベースユーティリティ]→[データベースの変換]で問題のファイル(コピー)を選択、別のファイルを作成し、そのファイルをshift同時押しで開き[ツール]→[データベースユーティリティ]→[データベースの変換]だと[Accessの旧バージョンのデータベースに変換]が選択できますので、そちらで変換し、新たなファイルを作成。 すると “少なくとも1つのAccess97のオブジェクト、ライブラリが足りません。変換したデータベースにAccess97で開き、失われた参照を回復しない限り機能しません。 参照が失われたままAccess97フォーマットで保存する場合は[OK]ボタンを、このデータベースに保存しない場合は[キャンセル]ボタンをクリックしてください。 ” の表示がでて、OK、キャンセルの選択になります。 OKすると任意のファイル名で保存は出来ます。 そのファイルを97で実行すると「~\\システム\\物件ID登録 のコードを現在のバージョンのVisual Basicに変更しました。」とでて、問題なく97で開くのですが、先ほど出た “少なくとも1つのAccess97のオブジェクト、ライブラリが足りません。変換したデータベースにAccess97で開き、失われた参照を回復しない限り機能しません。” の、足らないオブジェクト、ライブラリが解らず、機能しないと書いてある為、怖くてまだ保留にしてあります。 別の問題がありそうなのですが、見当が付きません。 原因自体が解らず、振り出しに戻ってしまったのでしょうか?

  • NorthMole
  • ベストアンサー率24% (20/82)
回答No.2

1.その2000のファイルはmdb形式のファイルで間違いないでしょうか?(mdeではアウトです) 2.起動時の設定で、メニューバーの表示等がオフになっている可能性があるので、シフトキーを押しながらファイルを開いてみましょう。 3.2.でツールバーが見れれば、念のため、[ツール]→[起動時の設定]をみれば、状況が確認できます。 4.では、[データベースの変換]にトライ!!

nishizaki
質問者

お礼

ありがとうございました。 詳しくそしてわかりやすい回答で、迷うことなく確認することができました。 感謝いたします。

nishizaki
質問者

補足

早速の回答ありがとうございます。 1.について、ファイルはmdbの拡張子になっています。 2.について、shiftと同時で[ツール]の表示及びデータベースウィンドウが表示されました。 3.の起動時の設定内容ですが  メニューバー (既存の設定)  起動時の設定は、既存のショートカット メニュー にチェック  フォーム/頁の表示 ******メニュー(不正と表示されるFormの名称)  ステータス バーの表示にチェック  ショートカット メニューバー (既存の設定) となっています。 4.[ツール]→[データベースユーティリティ]→[データベースの変換]と進むと   [データベースの変換]が選択できません。 テーブル、クエリなどいずれも選択不可です。 一旦閉じて無表示画面で [データベースの変換]は選択できますが、その場合も[Microsoft Access旧バージョンのデータベースに変換]が選択できません。 結果として、まだ成功していません。 [Microsoft Access旧バージョンのデータベースに変換]を表示させる方法は ありますでしょうか?

  • Mahk2
  • ベストアンサー率29% (15/51)
回答No.1

まずShiftキーを押しながらアイコンをダブルクリックしてみてください。 これで自動で起動しないようなら、データベースの変換を試してみてください。

nishizaki
質問者

お礼

ありがとうございました。 自動起動しない方法を覚える事ができました。 感謝いたします。

nishizaki
質問者

補足

早速の回答ありがとうございます。 データベースウィンドウが表示されました。 が、No.2の補足に記載内容の状態です。 ありがとうございます。

関連するQ&A