ルックアップの定義と更新
ルックアップを行うと、他のテーブルのデータが現在のテーブルのフィールドにコピーされます。コピーされたデータは、現在のテーブルの一部となります。コピー元のテーブルでは、データは変化しません。この場合、現在のテーブルにコピーされたデータは、コピー元のテーブルでデータを変更しても自動的に更新されることはありません。
たとえば、ルックアップを使用して購入時の品目の価格を「請求書」テーブルにコピーします。ルックアップを使用すると、関連テーブルの価格が変化した場合でも、「請求書」テーブルの価格は変わりません。
リレーションシップを使用してテーブル間にルックアップに使用する接続を確立します。続いて、関連テーブルのフィールドから現在のテーブルのフィールドにデータをコピーするルックアップを定義します。
現在のテーブルの照合フィールドへの値の入力やその値を変更すると、FileMaker Pro は、リレーションシップを使用して関連テーブルのレコードを検索し、リレーションシップの条件を満たす値が照合フィールドに入力されている最初のレコードを捜し出します。次にルックアップのコピー元フィールドからルックアップのコピー先フィールドへ値がコピーされます。
ルックアップのコピー先フィールドの値は現在のテーブルの他の値と同様に編集、置換、または削除できます。
関連テーブルの照合フィールドのデータの変更や任意のルックアップに使用するルックアップのコピー元フィールドのデータを変更する場合、ルックアップのコピー先フィールドのデータは自動的に更新されません。データを更新するには、ブラウズモードで [レコード] メニュー > [フィールド内容の再ルックアップ] を選択するか、ルックアップに使用されるリレーションシップの照合フィールドを変更するかして、再度ルックアップを実行する必要があります。
重要 ルックアップが複数条件リレーションシップに基づいている場合、そのリレーションシップで使用されているいずれかのフィールドに値が入力されるたびに、ルックアップが 1 回実行されます。必要なフィールドの 1 つに値が入力されるたびにルックアップが実行されます。
ルックアップを定義するには:
- [ファイル] メニュー > [管理] > [データベース...] を選択して、[リレーションシップ] タブをクリックします。
- 現在のテーブルの照合フィールドと関連テーブルの照合フィールドの間に、ルックアップで使用するリレーションシップを定義します。
リレーションシップの作成と変更を参照してください。
ルックアップのコピー元フィールドとルックアップのコピー先フィールドが、必ず同じフィールドタイプになるように指定してください。
- [フィールド] タブをクリックします。
- [テーブル] 一覧からテーブルを選択します。
- 既存フィールドの一覧からフィールドを選択するか新しいフィールドを定義してから、[オプション...] をクリックします。
- [入力値の自動化] タブをクリックして、[ルックアップ値] を選択します。
- [開始するテーブル:] で、ルックアップが開始点として使用するリレーションシップグラフ内のテーブルを選択します。[関連テーブルからルックアップする:] で、関連データのルックアップ元にする関連テーブルを選択します。
- ルックアップ値のコピー元のフィールドを選択します。
- ルックアップのオプションを選択します。
ルックアップ値を更新するには:
- 現在のテーブルで、更新するレコードを検索します。
- 現在のテーブルでブラウズモードに切り替えて、照合フィールドを選択し、[レコード] メニュー > [フィールド内容の再ルックアップ] を選択します。
[フィールド内容の再ルックアップ] コマンドでは、アクティブなレコードは確定されません。レコード内のデータの確定を参照してください。
重要 [フィールド内容の再ルックアップ] を実行すると、現在の対象レコード内のすべてのレコードで、照合フィールドによってルックアップされるすべてのフィールドが更新されます。ルックアップ値を更新すると、処理を元に戻すことはできません。
メモ
- 関連テーブル内の複数のレコードの照合フィールドに同じ値が入力されている場合は、次のように処理されます:
- リレーションシップにソート順が指定されていない場合は、最初に作成された関連レコードの値がコピーされます。
- リレーションシップにソート順が指定されている場合は、ソート順で最初のレコードから値がコピーされます。
- 最初の関連レコード (ルックアップによってコピーされるレコード) が特定のレコードになるように、リレーションシップで関連レコードをソートすることができます。たとえば、設備の最新の点検日をルックアップするには、点検日を基準に降順でレコードをソートします。リレーションシップの作成と変更を参照してください。
- [フィールド内容の再ルックアップ] スクリプトステップを実行するボタンまたはスクリプトトリガを定義すると、ルックアップ値を自動的に更新することができます。