LibreOfficeBaseでサブフォームを使用【メインのデータに関連情報をリンクして表示】

フリーのデータベースソフトウェアであるLibreOfficeのBaseを使ってフォーム画面にサブフォームによるリストを追加してみました。

以前にAccessで実践したサブフォームの作成のLibreOffice版です。

Baseでも、こうした機能を応用することでメインの情報に関連する取引や作業の履歴を確認するのに役立てることができます。

Baseでサブフォームを作成

LibreOfficeBaseを起動しテーブルを作成済みである既存のファイルを開きます。

Baseのファイルを開く

画像の例ではJDBC接続によりMariaDB(MySQL)のテーブルを表示していますが、PC内でBaseを使って作成したテーブルでも利用できます。

ウィザードを開始

左のアイコンでフォームを指定してからフォーム作成のウィザードを開始します。

メインのレコードを指定

最初に、上部に表示したいメインで使うテーブルを指定します。

表示するフィールドを選択

表示させるフィールドには全てのフィールドを選びます

サブフォームを作成

続いてサブフォーム追加にチェックを入れフィールドの手動選択に基づいたサブフォームを指定して次へ進みます。

サブフォームのテーブルを指定

次のサブフォームに表示する側のテーブルを選択。

表示するフィールドを指定

この例ではフィールを全部表示させることにします。

リンクさせるフィールドを指定

「フォームの結合を選択」では、二つのテーブルをリンクさせるフィールドを指定します。ここではどちらも登録コードを選びます。

コントロールのデザインを指定

コントロールの整列は、メイン側を項目ごとに独立したテキストボックスを設ける形式、サブフォームにはリスト形式を指定。

入力モードの選択

データ入力モードの選択では「すべてのデータが表示・・」の方を選択します。

背景色などを指定

続いてフォームの背景色などを設定。

終了後にフォームの編集

フォームの名前を入力し、フィールドの並べ替えを設定するためフォームの変更をチェックして完了をクリックします。

データの並べ替えと検索

ここまでの一連の操作でサブフォームが作成できていますが、実用面でデータの確認がしやすいよう登録データを降順にソートさせる設定をします。

データの並べ替え

サブフォームを選んで右クリック

作成したフォームをデザインモードで表示出来たら、リスト表示するサブフォーム部分を右クリックします。

フォームのプロパティ

表示されたメニューからフォームのプロパティを指定。

並べ替えを選択

表示されたボックスの中にある並べ替えのボタンをクリック。

フィールドの指定と並べ替え

日付フィールドで降順(データが新しい順)に設定しOKをクリックしメニューを閉じます。

メインフォームを選択して右クリック

つぎにテーブル側でもフォームの一部を右クリックします。

フォームのプロパティ

サブフォームの時と同じくフォームのプロパティを指定します。

並べ替えを選択

並べ替えの項目のボタンをクリック。

フィールドを指定して並べ替え

ここでは登録日が新しいデータをデフォルトで表示させるため、登録日を降順に設定しOKを押してメニューを閉じます。

フォームを保存

ここで設定を保存してから作成したフォーム画面を閉じます

ファイルを保存してからフォームを開く

一度ファイルを上書き保存してから完成したフォームを開きます。

これでメインのフォームに表示された最新のレコードと共通のコードを持っている詳細データがサブフォームとしてリスト表示されます。

検索機能を使う

検索ボタンをクリック

目的のデータを探すためにはフォーム画面の左下にある検索ボタンをクリックし検索画面を表示させます。

検索コードを入力

検索したいデータにコードを入力を入力し、検索対象のフィールドを指定したあと右下の検索ボタンを押します。

目的のレコードが表示された

これで登録コード222で検索したB社の基本データと該当する詳細情報が表示されました。

対象フィールドに社名を選択し、テキストに社名を入力する方法でも同じ検索結果が得られます。

サブフォーム側は常に新しいデータ順に並ぶよう設定されているので大量のデータが蓄積されている場合には下へスクロールして探すか、表示モードのままソートしなおすなどすると良いでしょう。

このようにLibreOfficeのBaseを使っても、メインのデータに対し関連する詳細データをリスト形式で表示させることが可能です。

今回の例ではサーバーにあるデータベースを読み込んでますが、パソコンのみで作成したBaseのファイルでも同様の操作が可能です。

おすすめ記事

JDBCドライバMySQL Connector JをLibreOfficeで設定 クライアントからSQLデータベースを閲覧操作するLibreOfficeBaseをインストール MicrosoftのAccessは難しい データベースアプリケーションの種類