■住所録の管理
ある会の住所録管理係になってしまいました。前任者はMS Accessで管理していましたが、私はAccessを持っていません。さてどうしたものか?OpenOffice.orgというものがあります。Writer、Drawは使ったことがあるのですが、データベースのBaseは使ったことがありません。これ、使えないだろうか?
OpenOffice自体もデータベースを持っています。全部OpenOfficeにお任せするのも手ですが、次に引き継ぐ人がOpenOfficeではなかったときにまたデータの変換に困ります。
OpenOfficeはデータベース管理のフロントエンドとして使用し、データベース自体はSqliteに任せるのはどうでしょうか。SqliteはODBCで接続できますし、引き継ぐときもファイルひとつ渡せばすみます。
会員の住所録更新と、タックシールへの印刷が最終目標です。
■AccessのデータをOpenOfficeに移管
まずAccessのデータをOpenOfficeに取り込みます。OpenOffice Baseを開きますと、データベースウィザードが起動します。「◎既存のデータベースに接続」にチェックし、「Microsoft Access」を選択します。後はAceessデータの.mdbファイルを指定すればOpenOfficeから見ることができます。
実際は、残念ながらデータを閲覧することができても、新規追加や更新はできませんでした。レコードの形式が適切ではないのかもしれません。
OpenOffice自体のデータベースに変換するには次のようにします。
- OpenOffice Baseを新規作成します。
- 「データベース」ペインで「テーブル」を選択します。
- Accessに接続したOpenOfficeでも同様に「テーブル」を選択します。
- Accessに接続したOpenOfficeの「テーブル」ペインから、変換したいテーブルを、新規作成したOpenOfficeの「テーブル」ペインへドラッグします。
■SqliteのWindows版
SqliteのWindows版は本家 http://www.sqlite.org/ にありますが、これだけではODBCドライバが足りません。ググッて見ますとSQLite ODBC Driver http://www.ch-werner.de/sqliteodbc/ が見つかりました。本家よりもバージョンが古いですが、ODBCドライバをインストールできます。
sqliteodbc.exeを実行すると[スタート]メニューに「SQLite ODBC Driver」が追加されます。CUIの管理コマンド「sqlite3」もありますから、データベースのテーブルを作成したり、レコードをインサートした りできます。次のコマンドを実行すればSqliteのデータファイルができます。
> sqlite3 filename
テーブルを作成するときに注意があります。必ずprimary keyとautoincrementを指定したフィールドを用意してください。これがないと、OpenOfficeから新規追加、更新ができないようです。前述のAccessデータの更新ができなかった理由も同様なものかもしれません。
「sqlite3」で作成したファイルをユーザDSNに追加して、OpenOffice BaseからODBCで接続すればOKです。