リレーションシップを設定して住所録テーブルを結合

リレーションシップを使うと、PA の住所録テーブル(data テーブル)と、任意の FileMaker ファイルのテーブルを結合したリレーショナルデータベースを作成することができます。テーブル間のデータの参照は、リレーションシップの設定に基づき行われます。

任意のレイアウトに、自身のテーブルと PA の住所録テーブルのフィールドを組み合わせて配置することができます。ルックアップと違い、PA の住所録テーブルの変更内容は自動的に更新されます。また、自身のテーブルから PA の住所録テーブルを編集すると、その内容は PA の住所録テーブルに即座に反映されます。自身のテーブルから PA のレコードを作成または削除することも可能です。

ここでは、任意の FileMaker ファイルを「my_database」とし、リレーションシップやテーブルの参照例などを説明します。

リレーションシップの設定および、リレーションシップによるテーブルの参照には、PA が起動(main をダブルクリックして関連ファイルが開いている状態)している必要があります。なお、リレーションシップを設定できるのは、data ファイル内の data テーブルのみです。

リレーションシップの設定例

ここでは単一条件リレーションシップ(互いの照合フィールドが [=] の記号で結ばれる)を使用します。

  1. PowerAddress フォルダ内の main を FileMaker Pro で開く
  2. my_database を開く
  3. my_database のテーブルに照合フィールドを作成
    ここでは PA と同じ名前の「整理番号」というフィールド作成する。タイプは PA と同じ「数字」にする。
  4. my_database の「ファイル> 管理> 外部データソース…」を開く
  5. PA の data を data という名前で登録
  6. my_database のリレーションシップグラフに data を追加
  7. 互いの整理番号を照合フィールドとして設定
    ここでは単一条件リレーションシップ(互いの照合フィールドが [=] の記号で結ばれる)を使用する。

リレーションシップを設定する際、data 側の「このリレーションシップを使用して、このテーブルでのレコードの作成を許可」を ON にすると、my_database 側から PA のレコードを作成することができます。

リレーションシップを設定する際、data 側の「他のテーブルでレコードが削除された時、このテーブルの関連レコードを削除」を ON にすると、my_database 側から PA のレコードを削除することができます。必要なレコードを間違って削除しないようご注意ください。

リレーションシップによるテーブルの結合例

ここでは、my_database のテーブルに「追加メモ」というテキストフィールドを作成し、my_database を表示しているレイアウトに、my_database のテーブルの「整理番号」と「追加メモ」、住所録テーブルの「姓」と「名」フィールドを組み合わせて配置します。

  1. レイアウトモードで、my_database のテーブルを表示したレイアウトを作成
  2. my_database のテーブルの「整理番号」と「追加メモ」を配置
    フィールドを指定する際は、フィールド指定のテーブルが「現在のテーブル(my_database)」になっていることを確認してください。
  3. リレーションシップを設定した住所録テーブルの「姓」と「名」を配置
    フィールドを指定する際は、フィールド指定のテーブルが「data」になっていることを確認してください。

PA の任意のレコードの値を参照する

ブラウズモードでレコードを作成し、my_database の「整理番号」フィールドに PA の任意のレコードの整理番号を入力してみてください。整理番号の値に応じた「姓」と「名」が表示されます。

「整理番号」と「追加メモ」の値は、my_database のテーブルの内容が表示されます。「姓」と「名」は、住所録テーブルの内容が表示されます。

PA のレコードを作成する

リレーションシップの設定で、data 側の「このリレーションシップを使用して、このテーブルでのレコードの作成を許可」が ON になっていることを確認します。

ブラウズモードでレコードを作成し、my_database の「姓」と「名」に任意の値を入力してください。PA 側に今作成したレコードが表示されます。

PA のレコードを削除する

リレーションシップの設定で、data 側の「他のテーブルでレコードが削除された時、このテーブルの関連レコードを削除」が ON になっていることを確認します。

リレーションシップによるレコードを my_database 側で削除すると、my_database 側のレコードとともに、PA 側のレコードも削除されます。必要なレコードを間違って削除しないようご注意ください。

関連ページ