2020年2月7日金曜日

古いAccessファイル(mdbファイル)をCSVに変換する手順

※本記事はOpenOfficeを利用します。OpenOfficeは更新が止まっててセキュリティホールもあるので(今はLibreOfficeだよ)インストールはオススメできない、、、というコメントを頂きましたが、本記事で紹介する技がLibreOfficeではできませんでしたので、ご自身の責任の上で緊急的な用途としてOpenOfficeを利用されればと思います(2020/02/10)

20年ほど前の昔の研究をリバイバルすることになりまして、そのためにはデータベースに保存してある情報を使わないといけないことに気づき、、、「そういえばACCESSで作ってたなぁ。開かなかったらどうしよう(笑)」と軽い気持ちで考えてみたものの、そのままでは開かないことが明らかになり、かなり苦労したのでメモ書きです。この技もいつまで使えるのかが要注意なので、古いネタを残している人は早めに移行しておきましょう。

必要なソフト
  • OpenOffice Base
  • OpenOffice Calc
  • JRE 32bit版
Microsoftは対応していない
まず、本家のMicrosoftはACCESS97とかその辺りの古いMDBファイルを開く手段を残してません。2010年辺りの古さなら対応しているようですが。。ここは諦めましょう。

OpenOffice Baseなら開くが。。。
Microsoft Office対抗馬のOpenOfficeなら開きます。そのかわり
  • 既存のデーターベースに接続
という形式で開くことになります。ここは注意点が1つあり、この方法で開いてその後にodbファイルを保存しても、データの本体はmdbファイルにあるということです。また、Baseにはcsvで保存とかcsvで出力という機能がありません。また
  • 編集できるテーブルとかできないテーブルとかある
  • コピペとかもできない
という感じで、実質見るだけ。ちょっとつらい。

odbファイルに移植する
odbファイルとして保存し直すにはどうすればいいか。。。下の図にあるように、左側に元ファイル、右側に新規に作成したodbファイルと並べて、テーブルを手作業(ドラッグ&ドロップ)で置いていくしかないようです。データの保存状態によってはうまく移行できないかもしれません。



Office Calcに移植してcsvに保存する
odbにしたところでBaseにはcsv変換機能がないわけですから、どうすればいいかというと、Calcに頼ります。つまりCalcに読み込ませることが最終ゴールであり、Calcに読み込ませるにはデータをodbファイルとして保存しておく必要があったということです。

で、この移植作業の方法ですが、手作業です。。。下記のように、baseとCalcを並べて
  • BaseのテーブルをCalcのあるシートのセルへドラッグ&ドロップ
することで、データがペーストされます。




JRE32bit版が必要です
OpenOfficeはJavaの機能を使ってるんですかね?どうもJRE32bit版がないと、フル機能が使えないようです。64bit版ではダメですよ。

以上の方法でとりあえずデータベースを復活できそうなので、個人的にはまあ一安心なんですが。。。互換性問題、、なかなか難しいですねぇ。



0 件のコメント:

コメントを投稿