Module
Contents
Index 🔎︎

# データ

データ タブでは、選択中のコントロールに使用させるデータソースを指定します。

このコマンドの見つけ方

選択したフォーム要素のコンテキストメニュー コントロール... → データ タブ

フォームコントロール ツールバーまたはフォームデザイン ツールバーを開き、コントロール アイコン → データ タブをクリックします。

データベースにリンクしているフォームの場合、フォーム属性で、付随するデータベースを指定します。このための機能は、データ タブにあります。

データ タブで設定する内容は、コントロールの種類により異なります。ここに表示されるオプションは、現在のコントロールとコンテキストで使用可能なものだけです。使用可能なフィールドには下記のものがあります。

## ソースセル範囲

リストボックスまたはコンボボックス用の項目が入っている、表計算ドキュメントにあるセル範囲を、入力します。 複数列の範囲を入力した場合、コントロールを埋めるためには、左端の列の内容だけが使用されます。

## データフィールド

データベースフォームを使用することで、データフィールドとコントロールをリンクさせることができます。

ここでは、考慮すべきケースがいくつかあります。

1. 最初のケース:フォーム内にテーブルがひとつだけ存在する場合。

   データフィールド属性には、フィールド内容を表示するデータソーステーブルのフィールドを指定します。

2. 第 2 のケース:SQL クエリーによって作成されるサブフォームにコントロールが属します。

   データフィールド属性には、フィールド内容を表示する SQL ステートメントのフィールドを指定します。

1. 第 3 のケース:コンボボックス

   コンボボックスの場合、データフィールド で、ユーザーが入力あるいは選択した値を保存する現在のフォームテーブルのフィールドを入力します。(リストの内容 で入力する SQLステートメントにより、このコンボボックスに表示される値を指定します。)

2. 第 4 のケース:リストボックス

   データソーステーブルが表示するデータを持つのではなく、共通データフィールド経由でデータソーステーブルにリンクされたテーブルである場合。

   たとえば、現在のデータソーステーブルにリンクしたテーブルからデータを読み込んで、それをリストボックスに表示させる場合、データフィールド には、このリストボックスに参照させるデータソーステーブルのフィールドを指定します。あるいは、フォーム中でのデータ表示を制御させるデータベースフィールドを指定します。この場合は、2 つのテーブルを共通のデータフィールドでリンクできるものとして、他方のテーブルへのリンクを、このデータフィールドで中継させます。通常、こうしたリンク用のデータフィールドには、一意的に決まる識別番号を収めたデータフィールドを使用するのが普通です。フォームに表示するデータフィールドは、リストの内容 の SQL ステートメントで指定します。

リストボックスを、参照によって動作させます。SQLステートメント(第４例)を介してリンクしているテーブルを使って、あるいは値のリストを介してリストボックスを動作させることができます。

リンクしているテーブル(SQLステートメント)による参照

リストボックスに表示させるデータを、フォームで利用するテーブルに共通データフィールドでリンクさせたデータベーステーブルから取り出す場合、フォームテーブルのリンクフィールドを データフィールド で指定します。

リストの内容の種類 で「sql」か「sql [Native]」を選択した場合、このリンクは リストの内容 フィールドに表示される SQL ステートメントの Select 句で処理されます。たとえば、フォームコントロールにリンクした「Order」テーブルがあり、データベース中ではこの「Order」テーブルに対して「Customers」テーブルがリンクしているという状況を想定します。この場合の SQL ステートメントは下記のように記述できます。

SELECT CustomerName, CustomorNo FROM Customers,

ここで「CustomerName」はリンク先の「Customers」テーブル中のデータフィールドであり、「CustomerNo」も「Customers」テーブル中のデータフィールドですが、こちらは データフィールド にフォームテーブルとして指定した「Orders」テーブル中のフィールドにリンクしてあるものです。

値のリストを介する参照

リストボックスの場合、値のリストを使うことができます。これは、参照値を定義するリストです。これにより、フォーム内のコントロールに直接、データベースフィールドの内容が表示されるのではなく、値のリストに割り当てられた値を介して表示されます。

値リストの参照値を操作することで、フォームの データフィールド に指定したデータフィールドの内容を表示することなく、割り当てた値が表示されるようになります。データ タブの リスト内容の種類 で「値リスト」を選択し、フォーム上の表示リストの項目への参照値を、リストの項目 (全般 タブで入力) に指定すると、この参照値と指定データフィールドの内容とが比較されます。参照値に一致するデータフィールドの内容が存在すると、対応するリストの項目がフォームに表示されます。

## フィルター候補

フォームのデザインをする際には、対応する 属性 ダイアログの データ タブにある各テキストボックスの「フィルター候補」属性を指定できます。フィルターモードでのこれ以降の検索実行時には、これらのフィールドにあるすべての情報が選択候補となります。 このようにしておくことで、オートコンプリート機能を使ってフィールドの内容を簡単に選択できます。ただし、この機能は、特に大規模なデータベースでは非常に大量のメモリスペースと時間を必要とするため、使用する場合には十分注意する必要があります。

## リストの内容

データベースフォームで、フォーム要素のリストに表示するデータソースを指定します。このフィールドは、データベース接続なしに、ドキュメントに値リストを指定するために使用することができます。

データベースフォームの場合、リストボックスおよびコンボボックスの表示項目は、データソースにより決まります。選択した種類に応じて、データベース中にいくつかのオブジェクトがある場合、リストの内容 には指定可能な複数のデータソースが表示されますここには、リストの内容の種類 で選択した種類に該当する、すべてのデータベースオブジェクトが一覧表示されます。リストの内容の種類として「値リスト」を選択した場合は、データベースフォームへの参照値を使用できます。またコントロールの表示内容を SQL コマンドで制御する場合は、ここには SQL ステートメントを入力します。

SQLステートメントの例

リストボックスの場合、SQL ステートメントは次の形式になります。

SELECT feld1, feld2 FROM tabelle,

ここで、「tabelle」は、コントロールのリストに表示されるデータの入ったテーブルのことです (リストテーブル)。「feld1」は、フォームの表示項目を指定するデータフィールドで、その内容がリストボックスに表示されます。リンクするフィールド で =１を選択した場合には、「feld2」は、データフィールド で入力したフィールドを介して、フォームテーブル(値のテーブル)とリンクするリストテーブルのフィールドです。

コンボボックスの場合、SQL ステートメントは次の形式になります。

SELECT DISTINCT feld FROM tabelle,

ここでの「field」の意味は、コンボボックスのリストに表示されるリストテーブル「table」にあるデータフィールドの 1 つを示します。

HTMLドキュメントの場合の値のリスト

HTML フォームの場合は、リストの内容 に値リストを入力できます。リストの内容の種類 で「値リスト」を選択します。ここに入力する値は、フォーム上に表示するものではなく、表示項目へ値を指定するために使用します。リストの内容 に指定する項目は、HTML タグの <OPTION VALUE=...> に相当するものです。

リストボックスやコンボボックスの選択項目をデータ転送する際には、フォームに表示される値のリストで 全般 タブの リストの項目 に入力されたものと、データ タブの リストの内容 に入力された値リストの両方が対象とされます。そして、値リスト (<OPTION VALUE=...>) の選択位置に空白でないテキストがあれば、それが送信されます。それ以外の場合は、(<OPTION>) コントロールの表示テキストが送信されます。

値リストに空白の文字列を指定するには、リストの内容 の該当箇所に「$$$empty$$$」と入力します (大文字/小文字に注意します)。この文字列は LibreOffice により空白文字列と解釈され、リスト項目の中に登録されます。

HTML、JavaScript、 LibreOffice フィールド リストの内容 の間の関係をリストボックス名「ListBox1」を使って、以下の表に示します。この場合の「Item」は、フォームに表示されているリスト項目です。

HTMLタグ | JavaScript | コントロールの値のリストの項目(リストの内容) | 転送されるのは...
<OPTION>Item | 不可能 | "" | ...表示されているリスト項目(「ListBox1=Item」)。
<OPTION VALUE="Wert">Item | ListBox1.options[0].value="Wert" | 「値」 | ...リスト項目に割り当てられている値(「ListBox1=Wert」)。
<OPTION VALUE="Wert">Item | ListBox1.options[0].value="" | 「$$$empty$$$」 | ...スペース(「ListBox1=」)。

## リストの内容の種類

リストボックスおよびコンボボックスのリストに表示するデータを指定します。

「値リスト」オプションを選択すると、全般 タブ の リストの項目 フィールドに入力したすべての項目が、コントロールに表示されます。データベースフォームに関しては、参照値を使用できます (詳細は 値のリストを介する参照 の節を参照してください)。

コントロールの内容をデータベースから読み込む場合、他のオプションでデータソースの種類を指定できます。たとえばここでは、テーブルとするかクエリーとするかを選択できます。

## リンクされたセル

表計算ドキュメントにあるリンクされたセルに対する参照を指定します。コントロールの有効無効の状態や内容が、セル内容にリンクされます。 下記の表に、コントロールおよび各コントロールに対応するリンク型を示します。

### リンクされたセルのあるチェックボックス

アクション | 結果
チェックボックスを選択 | リンクされたセルに TRUE を入力
チェックボックスをオフにします。 | リンクされたセルに FALSE を入力
3 種類の条件付きチェックボックスを「不確定」状態に設定 | リンクされたセルに #NV を入力
数値またはリンクされたセルに数値を戻す数式を入力 | 入力された値が、TRUE または 0 以外の場合、チェックボックスはオンになります。 入力された値が、FALSE または 0 の場合、チェックボックスはオフになります。
リンクされたセルをクリアするか、テキストを入力するか、テキストまたはエラーを戻す数式を入力 | チェックボックスが 3 種類の条件付きチェックボックスの場合には、「不確定」状態に設定されます。上記以外のチェックボックスの場合には、オフになります。
ボックスを選択します。「参照値」ボックスにテキストが入ります。 | 「参照値」ボックスからセルにテキストがコピーされます。
ボックスを選択解除します。「参照値」ボックスにテキストが入ります。 | 空の文字列がセルにコピーされます。
「参照値」ボックスにテキストが入ります。セルに同じテキストを入力します。 | チェックボックスがオンです。
「参照値」ボックスにテキストが入ります。セルに別のテキストを入力します。 | チェックボックスがオフです。

### リンクされたセルのあるオプションボタン (ラジオボタン)

アクション | 結果
オプションボタンを選択します。 | リンクされたセルに TRUE を入力
別のオプションボタンを選択するとオプションボタンを選択解除 | リンクされたセルに FALSE を入力
数値またはリンクされたセルに数値を戻す数式を入力 | 入力された値が、TRUE または 0 以外の場合、オプションボタンはオンになります。 入力された値が、FALSE または 0 の場合、オプションボタンはオフになります。
リンクされたセルをクリアするか、テキストを入力するか、テキストまたはエラーを戻す数式を入力 | オプションボタンの選択を解除
オプションボタンをクリックします。「参照値」ボックスにテキストが入ります。 | 「参照値」ボックスからセルにテキストがコピーされます。
同じグループの別のオプションボタンをクリックします。「参照値」ボックスにテキストが入ります。 | 空の文字列がセルにコピーされます。
「参照値」ボックスにテキストが入ります。セルに同じテキストを入力します。 | オプションボタンがオンです。
「参照値」ボックスにテキストが入ります。セルに別のテキストを入力します。 | オプションボタンがクリアされます。

### リンクされたセルのあるテキストボックス

アクション | 結果
テキストボックスにテキストを入力 | テキストをリンクされたセルにコピー
テキストボックスをクリアする | リンクされたセルをクリア
リンクされたセルにテキストまたは数値を入力 | テキストまたは数値を、選択したテキストボックスにコピー
リンクされたセルに数式を入力 | 数式の結果を、テキストボックスにコピー
リンクされたセルをクリア | テキストボックスをクリア

### リンクされたセルのある数値フィールドおよび書式付きフィールド

アクション | 結果
フィールドに数値を入力 | 数値をリンクされたセルにコピー
フィールドをクリア | リンクされたセルに 0 を設定
数値またはリンクされたセルに数値を戻す数式を入力 | フィールドに数値をコピー
リンクされたセルをクリアするか、テキストを入力するか、テキストまたはエラーを戻す数式を入力 | フィールドに 0 を設定

### リンクされたセルのあるリストボックス

リストボックスでは、2 種類のリンクモードがサポートされています。「リンクされたセルの内容」プロパティを参照してください。

1. 「リンクされた内容」では、リストボックスの選択した項目の内容が、セルの内容と同期されます。

2. 「リンクされた選択の位置」では、リストボックスの単一選択項目の位置が、セルの数値に同期されます。

アクション | 結果
単一のリスト項目を選択 | 「内容をリンク」では、項目のテキストがリンクされたセルにコピーされます。 「選択をリンク」では、選択項目の位置がリンクされたセルにコピーされます。たとえば、3 番目の項目を選択すると、数値 3 がコピーされます。
複数リスト項目を選択 | リンクされたセルに #NV を入力
全リスト項目を選択解除 | 「内容をリンク」では、リンクされたセルをクリア 「選択をリンク」では、リンクされたセルに 0 を入力
リンクされたセルにテキストまたは数値を入力 | 「内容をリンク」では、等しいリスト項目を検索して選択 「選択をリンク」では、指定位置 (先頭の項目は 1 です) にある項目が選択されます。見つからない場合は、どの項目も選択されません。
リンクされたセルに数式を入力 | 数式の結果およびリンクモードにマッチするリスト項目を検索して選択
リンクされたセルをクリア | リストボックスの全リスト項目を選択解除
リストのソース範囲の内容を変更 | 変更に応じて、リストボックスの項目が更新されます。選択状態は保たれます。この結果リンクされたセルが更新される場合があります。

### リンクされたセルのあるコンボボックス

アクション | 結果
コンボボックスの編集フィールドにテキストを入力するか、ドロップダウンリストから項目を選択 | テキストをリンクされたセルにコピー
コンボボックスの編集フィールドをクリア | リンクされたセルをクリア
リンクされたセルにテキストまたは数値を入力 | テキストまたは数値を、コンボボックスの編集フィールドにコピー
リンクされたセルに数式を入力 | 数式の結果を、コンボボックスの編集フィールドにコピー
リンクされたセルをクリア | コンボボックスの編集フィールドをクリア
リストのソース範囲の内容を変更 | 変更に応じて、ドロップダウンリストの項目が更新されます。コンボボックスの編集フィールドおよびリンクされたセルは変更されません。

## リンクされたセルの内容

表計算ドキュメントにあるリンクされたセルを使用してリストボックスをリンクさせる時のモードを選択します。

1. 「リンクされた内容」では、リストボックスの選択した項目の内容が、セルの内容と同期されます。「選択済み項目」を選択

2. 「リンクされた選択の位置」では、リストボックスの単一選択項目の位置が、セルの数値に同期されます。「選択済み項目の位置」を選択

## 参照値 (オフ)

表計算ドキュメント内のチェックボックスおよびラジオボタンは、現在のドキュメントのセルにバインドできます。 このコントロールが有効である場合、参照値に入力した値 (on) がセルにコピーされます。 このコントロールが無効である場合、参照値の値 (off) がセルにコピーされます。

## 参照値 (オン)

参照値は、オプションボックスとチェックボックスに割り当てることができます。参照値は、フォームの送信時にサーバーに送られます。データベースフォームの場合、ここに入力された値はコントロールフィールドに割り当てられたデータベース内に書き込まれます。

Web フォームからの参照値

Web フォームをデザインし、コントロールのステータスに関する情報をサーバーに転送する場合に、参照値が有効です。 ユーザーがコントロールをクリックすると、それに対応する参照値がサーバーに送信されます。

例えば、オプション「女性」、「男性」に対応する 2 つのコントロールフィールドがあり、参照値 1 をフィールド「女性」、参照値 2 をフィールド「男性」に割り当てます。ユーザーがフィールド「女性」をクリックすると値 1 がサーバーに送信され、フィールド「男性」をクリックすると値 2 が送信されます。

データベースフォームの場合の参照値

データベースフォームの場合、オプションフィールドあるいはチェックボックスのステータスを同様に参照値で識別し、この参照値をデータベースに保存できます。たとえば、３つのオプション「作業中」、「処理済み」および「再提出」をグループ化し、それぞれに、参照「ToDo」、「OK」および「WV」を割り当てている場合、それぞれのオプションをクリックすると、データベースのこれらの参照値が表示されます。

## 空の文字列は NULL とみなす

は、空白の文字列の扱いを定義します。Yes に設定されていると長さゼロの文字列を入力すると NULL 値として扱われます。No に設定されていると、入力された値はそのまま何の変換もされずに扱われます。

空白の文字列とは長さがゼロの文字列です("")。通常は、NULL 値は空白文字列とは別物です。一般的に、NULL という言葉は未定義の値とか、 不定の値、または "何も値が入っていない"を意味します。

データベースシステムはそれぞれ異なります。それぞれが、NULL 値を別々に扱っています。お使いのデータベースシステムのドキュメントを参照してください。

## 関連あるフィールド

プロパティブラウザー内の 境界フィールド セルの内容を削除すると、データの表示と交換用に結果セットの最初のフィールドが使用されます。

リストボックスに使える属性により、リンクしているテーブルのどのデータフィールドをフォームに表示するかが決まります。

フォーム内のリストボックスに、フォームテーブルとリンクしているテーブルの内容を表示するには、リストの内容の種類 フィールドで、SQLコマンドを介して表示させるか、あるいはその際、(リンクしている)テーブルに遡ってアクセスするかを指定します。関連あるフィールド 属性で、インデックスを使って、クエリーあるいはテーブルのどのデータフィールドとリストボックスがリンクしているかを指定します。

関連あるフィールド 属性は、複数のテーブルにアクセスするフォームに対してのみ使用します。単独のテーブルのみを使用するフォームの場合、フォームに表示するフィールドは、データフィールド に指定します。リストボックスに表示させるデータを、共通データフィールドを介在して現在のテーブルにリンクしたテーブルから読み出する場合は、リンクしたデータフィールドを 関連あるフィールド 属性に指定します。

リストの内容の種類 で「sql」を選択した場合は、SQL コマンドによりインデックスを指定します。例:SQL コマンドとして リストの内容 に「SELECT Field1, Field2 FROM tablename」のように指定すると、テーブルは下記のように参照されます。

関連あるフィールド | リンク
-1 | The index of the selected entry in the list is linked to the field specified under Data field.
{empty} or 0 | データベースフィールド「Feld1」は、データフィールド で入力したフィールドにリンクされています。
1 | データベースフィールド「Feld2」は、データフィールド で入力したフィールドにリンクされています。

リストの内容の種類 で「テーブル」を選択した場合は、使用するインデックスはテーブル構造により規定されます。例:リストの内容 でデータベーステーブルを選択した場合、テーブルは下記のように参照されます。

関連あるフィールド | リンク
-1 | The index of the selected entry in the list is linked to the field specified under Data field.
{empty} or 0 | テーブルの第１列は、データフィールド で入力したフィールドにリンクしています。
1 | テーブルの第２列は、データフィールド で入力したフィールドにリンクしています。
2 | テーブルの第３列は、データフィールド で入力したフィールドにリンクしています。