フリーのデータベースソフトウェアであるLibreOfficeのBaseを使ってフォーム画面にサブフォームによるリストを追加してみました。
以前にAccessで実践したサブフォームの作成のLibreOffice版です。
Baseでも、こうした機能を応用することでメインの情報に関連する取引や作業の履歴を確認するのに役立てることができます。
目次 非表示
Baseでサブフォームを作成
LibreOfficeBaseを起動しテーブルを作成済みである既存のファイルを開きます。
画像の例ではJDBC接続によりMariaDB(MySQL)のテーブルを表示していますが、PC内でBaseを使って作成したテーブルでも利用できます。
左のアイコンでフォームを指定してからフォーム作成のウィザードを開始します。
最初に、上部に表示したいメインで使うテーブルを指定します。
表示させるフィールドには全てのフィールドを選びます
続いてサブフォーム追加にチェックを入れフィールドの手動選択に基づいたサブフォームを指定して次へ進みます。
次のサブフォームに表示する側のテーブルを選択。
この例ではフィールを全部表示させることにします。
「フォームの結合を選択」では、二つのテーブルをリンクさせるフィールドを指定します。ここではどちらも登録コードを選びます。
コントロールの整列は、メイン側を項目ごとに独立したテキストボックスを設ける形式、サブフォームにはリスト形式を指定。
データ入力モードの選択では「すべてのデータが表示・・」の方を選択します。
続いてフォームの背景色などを設定。
フォームの名前を入力し、フィールドの並べ替えを設定するためフォームの変更をチェックして完了をクリックします。
データの並べ替えと検索
ここまでの一連の操作でサブフォームが作成できていますが、実用面でデータの確認がしやすいよう登録データを降順にソートさせる設定をします。
データの並べ替え
作成したフォームをデザインモードで表示出来たら、リスト表示するサブフォーム部分を右クリックします。
表示されたメニューからフォームのプロパティを指定。
表示されたボックスの中にある並べ替えのボタンをクリック。
日付フィールドで降順(データが新しい順)に設定しOKをクリックしメニューを閉じます。
つぎにテーブル側でもフォームの一部を右クリックします。
サブフォームの時と同じくフォームのプロパティを指定します。
並べ替えの項目のボタンをクリック。
ここでは登録日が新しいデータをデフォルトで表示させるため、登録日を降順に設定しOKを押してメニューを閉じます。
ここで設定を保存してから作成したフォーム画面を閉じます
一度ファイルを上書き保存してから完成したフォームを開きます。
これでメインのフォームに表示された最新のレコードと共通のコードを持っている詳細データがサブフォームとしてリスト表示されます。
検索機能を使う
目的のデータを探すためにはフォーム画面の左下にある検索ボタンをクリックし検索画面を表示させます。
検索したいデータにコードを入力を入力し、検索対象のフィールドを指定したあと右下の検索ボタンを押します。
これで登録コード222で検索したB社の基本データと該当する詳細情報が表示されました。
対象フィールドに社名を選択し、テキストに社名を入力する方法でも同じ検索結果が得られます。
サブフォーム側は常に新しいデータ順に並ぶよう設定されているので大量のデータが蓄積されている場合には下へスクロールして探すか、表示モードのままソートしなおすなどすると良いでしょう。
このようにLibreOfficeのBaseを使っても、メインのデータに対し関連する詳細データをリスト形式で表示させることが可能です。
今回の例ではサーバーにあるデータベースを読み込んでますが、パソコンのみで作成したBaseのファイルでも同様の操作が可能です。
おすすめ記事
JDBCドライバMySQL Connector JをLibreOfficeで設定 クライアントからSQLデータベースを閲覧操作するLibreOfficeBaseをインストール