Libre office Base フォーム入力に役立つコンボボックス作成

2022年9月26日

データベースでリレーションの役割として、私がイメージするのが、フォーム入力の際に便利だという点なのですが…リレーションを組まなくてもコンボボックスから選択入力できることに気がついた今日この頃。

リレーションについては以前の記事でも紹介しましたが、管理したいデータも単純なら、リレーションを組まずに選択入力だけでも十分だと思います。…今回はリレーションをわざわざ組まずにフォームから選択入力する方法について解説します。

Baseのフォーム入力におけるコンボボックスの役割

データベースソフトのフォームの役割にデータ入力というのがあります。Baseもそうですがフォームのおかげで入力しやすくすることができます。テーブルに直接入力すると表形式で入力することになります。Accessは忘れてしまいましたが・・・Baseの場合、テーブルではYes /Noの選択入力はできても、コンボボックスのように選択入力はできません。

コンボボックス

例えば帳簿作成時には科目という項目があります。経費を計上するときなら「水道光熱費」「接待交際費」とかそういうやつです。その項目は結構な数があります。そしてもっと重要なことは正しく抽出しないと何もできないということ(集計とか)。一文字でも違ってたらアウトです。そのためにもコンボボックスを利用して正しく、楽に入力することはとても便利です。そして、科目のように増える可能性のある項目がある場合も、やはりコンボボックスのように項目を選択できることは重要です。いつでもテーブルで項目追加できますから。

ここで配布している帳簿でもコンボボックスを使用しています。配布の帳簿の場合、科目名や電子取引の種類の入力に使用しています。

フォームで選択ようのコンボボックスを設定する方法

リレーションは組まなくてもできる

データベースソフトの一つの特徴はリレーションです。項目が2つに跨がるようなデザインの場合、リレーションを組んでおけば入力する手間を省けるケースがあります。

しかし、ここで配布しているようなシンプルな帳簿の場合、リレーションは組まなくてもできます。

出納帳、仕訳帳、元帳までは作れてしまうわけです。帳簿の場合、壁はリレーションではなく残高計算とかの方なので・・・・リレーションを組むほどややこしい構造ではないのです。もっと複雑な業務用のものであれば必要になるかもしませんが、なくても結構良いものは作れます。

①テーブルを作成する

分かっている方にとってはあたりませですが、コンボコックス用のテーブルをまず作成します。下のようなボックスであれは、科目命のボックスが必須です。

「科目ID」と名付けているところはわかりやすい適当な名前でいいです。カテゴリーIDは無視してください。

フォームを作成し、ファールドをコンボボックス形式にする

フォームの作成を1からここでは解説しませんが、わかりやすいサイトをご参照ください。

https://www.ja-fukuoka.or.jp/upload/user/libreoffice_base_fb_nyumon.pdf

フィールドをそのまま追加するとこんな感じになります。

このままでは手入力で科目名を間違いなく入力することになるので、選択形式にするためにコンボボックスにしていきます。

altキーを押しならボックスの部分のみを選択し右クリックし、「置換候補」に移動して「コンボックス」を選択。

するとコンボボックスになったので、再度altを押しながらコンボぼっすくのみを選択し右クリック、「コントロールのプロパティ」を選択

「データ」で「リスト内容の種類」を「Sql」にする。

「リストの内容」の右のやつをクリック

するとクエリーのデザインみたいなやつが登場するので、あとは下の図のように設定

ここでとても重要なのは、抽出する項目の順番。必ず一番左にコンボボックスに表示したいものを選択してください。IDにしてしまうと番号だけが出てきてしまいます。この場合「相手科目名」を一番左にします。

これでフォームに戻り、ビューで確認すると

選択できるようになりました。ボックスの高さなどはデザインビューで好きなようにしてください。

リレーションを組んでいる場合が逆にややこしい

これで選択入力はバッチリです。もしもリレーションを組んでいる場合、なぜかコンボボックスがうまく機能しません。詳しくはここでは書きませんが、置換候補をコンボボックスではなく「リストボックス」にし、コントロールのプロパティの「全般」で「ドロップダウン」を「はい」にするとうまくいきます。コンボボックスとどう違うのか把握しきれていませんが、表形式の入力では使えない方法なので、フォームの中で表形式で入力したい場合はやはりコンボボックスということになってしまいます。

このフォームでの選択入力機能はリレーションを組んでいると面倒になるのは確かです。

さいごに

フォームで選択入力をするための方法を解説しました。これができれば誤入力は防げるし、項目を追加しても自動的に選択項目にでてきてくれるので、楽で正確な入力が可能になります。是非活用してみてください。