2007年07月14日

OpenOfficeとAccessとSqlite

■住所録の管理

ある会の住所録管理係になってしまいました。前任者は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自体のデータベースに変換するには次のようにします。
  1. OpenOffice Baseを新規作成します。
  2. 「データベース」ペインで「テーブル」を選択します。
  3. Accessに接続したOpenOfficeでも同様に「テーブル」を選択します。
  4. Accessに接続したOpenOfficeの「テーブル」ペインから、変換したいテーブルを、新規作成した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です。
posted by ピカリ入道 at 00:00| Comment(0) | TrackBack(0) | コンピュータ
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/9776228

この記事へのトラックバック