memorandums

日々の作業ログです。

MS-ACCESSのACCDBファイルをlibreOfficeのBASEにインポートする手順(macOS)

MS-ACCESSを立ち上げて、ACCDBファイルを開いて、Excelなどにエクスポートすればいいんだろうけど、ACCESSがない、例えば、macのような環境でできないか調べてみました。

すると、mdb-toolsというありがたいソフトウェアがあることを知りました。

ja.osdn.net

macではbrewで入れるのが簡単のようです。

brew install mdb-tools

これで準備完了。

では、手元にあるaccdbファイルを変換する手順を以下にメモりたいと思います。メモメモぉ〜。

(1)ターミナルを開いて、accdbファイル(ここではaaa.accdbというファイル名にします)のある場所までcdで移動します。そして、以下のコマンドを実行します。accdbファイルの中にt_部屋とt_宿泊予約というテーブルが入っているとします。以下の2行でCSVファイルとして2つのテーブルデータを取り出すことができます。mdb-toolsの使い方はあちこちに情報があるのでググってください。

mdb-export  aaa.accdb  t_部屋 > t_部屋
mdb-export  aaa.accdb  t_宿泊予約 > t_宿泊予約

(2)t_部屋とt_宿泊予約はCSVかつテキストファイルなんですが、UTF-8なんですね。。。このままではExcelに読み込むと文字化けします。で、iconvを使って文字コード変換します。コマンドは以下の通り。iconvも超有名なコマンドなので使い方はググってください。

iconv -f utf8 -t sjis t_宿泊予約 > t_宿泊予約.csv
iconv -f utf8 -t sjis t_部屋 > t_部屋.csv

(3)続いて、上記の2つのCSVファイルをダブクリします。Excelが入っていればExcelが起動するはずなので2つのシートをドラッグ&ドロップで1つのワークブックに合体して、名前をつけて保存で、XLSX形式で保存してください。ここでは、data.xlsxと名前をつけたとしますね。

(4)あとは、libreOfficeを起動します。ここでは日本語化した6.4.6.2を使います。7.0.1でも同じようですけど。[新規作成]-[データベース]を選択してください。すると以下のような画面になります。「既存のデータベースに接続」を選択して「表計算ドキュメント」を選択し、次へを押します。

f:id:ke_takahashi:20200904014407p:plain

(5)続いて、ブラウズボタンを押したあと、上記の(3)で作成したdata.xlsxを選択して次へボタンを押します。

f:id:ke_takahashi:20200904014517p:plain

(6)はい、終了〜。2つのテーブルがインポートできました。

f:id:ke_takahashi:20200904014656p:plain

(7)中身を確認してみましょうか?テーブル定義なんとなくいいですね〜列名はもちろん型情報も推定してくれています。また、データの中身も文字化けせずはいっていますね。

f:id:ke_takahashi:20200904014733p:plain

f:id:ke_takahashi:20200904014748p:plain

めでたしめでたし。ちゃんちゃん😁