やまものブログ

メモ書きブログです (^_^;A

LibreOffice Base (データベース) を calc (表計算ドキュメント) にデータベース接続 ~ 年賀状宛名印刷のために

Ubuntu で年賀状の宛名印刷(再) にメモ書きしたとおり、LibreOffice Writer の差し込み印刷を使って年賀状の宛名面を印刷しました。

ここで使用したファイルは下記の3つです。
イメージ 1

● はがき住所録.odb     → 役割は何??? (Base; データベース)
● はがき住所録.ods     → 年賀状送付先の宛名の一覧 (Calc; 表計算ドキュメント)
● カスタム縦書き印刷.odt     → 差し込み印刷のレイアウト (writer; 文書ドキュメント)

今回は、上記で「役割は何???」とした Base(データベース) について調べたことを、以下の内容でまとめます。

1) 「はがき住所録.odb」の作成方法
2) 登録されているデータベース
3) Calc 「データ」 →「範囲の指定」
4) Calc, Writer 「表示」 → 「データソース」
5) Base 新規データベースの作成(参考情報)


なお、私は Office 製品、データベースなどについて素人ですので、誤りなどあればご指摘いただけると幸いです。また、実際に確認できた事実と、そこからの推測については分けて記述するように気をつけます。


1) 「はがき住所録.odb」の作成方法
年賀状宛名印刷に必要な3つのファイル群から、詳細が不明な Base ファイルを削除した状態(下記)
イメージ 2
から始めて、宛名印刷を実行できるように Base ファイル「はがき住所録.odb」を作成することができました。

以下がその手順です。

まず、LibreOffice Base を起動します。
例えば、下記のようにアプリを検索することで起動できます。
イメージ 3

Base を起動すると、ウィザードが現れます。
イメージ 4

ここで、デフォルトは「新規データベースの作成(E)」ですが、上記のように
既存のデータベースに接続(X)
を選び、さらに、接続する対象として
表計算ドキュメント
を選択します。

このメニュー構成からすると、LibreOffice では、表計算ドキュメント(= Calc)はデータベース扱いなのかもしれません(推測)。

次へ(N)>>」をクリックします。
イメージ 5

ブラウズ(A)」を使って、Calc ファイル「はがき住所録.ods」を指定します。
次へ(N)>>」をクリックします。
イメージ 6

ここはデフォルトのままで「完了(F)」をクリックします。
イメージ 7

Base ファイル (.odb)の保存パスとファイル名を聞かれるので、Calc/Writer ファイルと同じパス(ここでは /home1/hoge/Nenga/)、および、「はがき住所録」を指定します。

以上で、3つのファイルが存在する元の状態に戻りました。
イメージ 8

はがき住所録.odb」を Base で開いて、「テーブル(A)」を選ぶと、下記のように "Table1" が登録されています。
イメージ 9

カスタム縦書き印刷.odt」を開いて印刷すれば、「差し込み印刷」にて下記のようにテーブルを指定できるようになっていて、Calc に登録された住所で宛名が印刷されます。
イメージ 13


2) 登録されているデータベース
Base ファイル「はがき住所録.odb」は、Calc の住所情報を Writer の差し込み印刷に渡す役割をしているようですが、これだけでは「Base ファイルって何者なの?」という漠然とした疑問が残ったままです。

その疑問に、私なりの納得感を与えてくれたのが下記の「データベース」メニューです。
イメージ 10

このメニューは私の環境で "LibreOffice" として認識される全てのアプリ:
Calc, Writer, Base, Impress, Draw, Math (以下、「全てのアプリ」)
において、同じように下記のメニューでアクセスできます。
  「ツール」 → 「オプション」

登録されているデータベース」の情報は、各データベースごとの
・「登録名
・「データベースファイル」(絶対パス
の組み合わせです。
後者は絶対パスのため、指定されている Base ファイル(.odb)を移動すると、データベース参照がエラーになります。

この仕組みの設計思想は、LibreOffice スイートが登録された Base ファイル(.odb)を管理することで、PC上の LibreOffice 全てのアプリが同じデータを参照できるようにすることなのかもしれません(推測)。

3) Calc, Writer 「表示」 → 「データソース」
登録されたデータベースは、全てのアプリから参照できるのかと期待したのですが、実際に確認できたのは CalcWriterのみでした。

具体的には、Calc あるいは Writer において
・メニュー 「表示」 → 「データソース」 を選択する
あるいは、
イメージ 11ボタンをクリックする
と、例えば、Writer では下記スクリーンショットで赤い四角で囲ったペインが現れます。
イメージ 14

赤い枠の左側でデータベースの「テーブル」を選択すると、右側に示されているように、そこに含まれるデータを参照できます。

ここで、上記のスクリーンショット、左側の「テーブル」欄をよく見てください
"Table1" の下に「住所録」があります。これが次のセクションのトピックです。

4) Calc 「データ」 →「範囲の指定」
最初に述べた「はがき住所録.odb」の作成方法では、Calcファイルのシート名(ここでは"Table1")が、そのままデータベースでのテーブル名となります。

ここで、"Table1"の内容が必要十分であればよいのですが、例えば、
・Calcファイル末尾の行がデータベースとして参照されない
・Calcファイル末尾以降の空行も参照データに含まれてしまう
といった不都合もありえます。この2つは実際に自分が経験しました。

この問題には、Calc においてデータ範囲を指定することで対応できます。
指定は、Calc のメニュー
  「データ」 →「範囲の指定」
で、参照範囲と名前を指定します。
下記が前出の「住所録」というデータ範囲を定義した際のスクリーンショットです。
イメージ 12

このように Calc ファイルで定義したデータ範囲は、その Calc ファイルをデータベース接続する Base ファイルが LibreOffice に登録されていれば、他の Calc や Writer ファイルからすぐに利用できるようになります。

5) Base 新規データベースの作成(参考情報)
ここまでは  Base に Calc をデータベースとして接続して利用する方法について調べたことをまとめました。一方、Base はそれ自体でデータを保持することができて、むしろ、その方が基本的な利用方法のようにも思えます(推測)。以下では、Base にデータを登録して使う方法について解説した動画を紹介します。

YouTube で下記のタイトルで検索してみてください。

LibreOffice Base (01) Create a Database, Create a Table
LibreOffice Base (02) Create a Table with the Table Wizard
LibreOffice Base (03) Import Data from a Calc File
LibreOffice Base (04) Create a Table Using a Calc File


解説が英語なのでヒヤリングが厳しい箇所は多々あったのですが、LibreOffice Base の操作を丁寧な動画で見せてくれるので、「Base ってこういうものなんだ 」というイメージをつかむことができました。Base の基本操作をご存じない方なら、この4つの動画は参考になると思います。



以上、年賀状印刷に端を発した LibreOffice Base の使い方についてのメモでした。

今年も、年に一度の大イベントである年賀状印刷を無事に完了できて、さらに、それに利用させてもらった LibreOffice の仕組みに少し踏み込むこともできました

まだ一日ありますが、今年も一年お疲れ様でした
良いお年をお迎えください m(_ _)m