Access の 2 つのテーブルに共通のフィールドが 1 つ以上ある場合は、あるテーブルのデータシートを別のテーブルに埋め込むことができます。 サブデータシートと呼ばれる埋め込みデータシートは、テーブルまたは クエリ内の関連データまたは結合されたデータを表示および編集する場合に便利です。
この記事の内容
サブデータシートの概要
サブデータシートは、複数のデータ ソースの情報を 1 つのデータシート ビューで表示する場合に便利です。 たとえば、Northwind サンプル データベースでは、Orders テーブルに Order Details テーブルとの 一対多リレーションシップ があります。
Orders テーブルに OrderS テーブルがサブデータシートとして追加されている場合は、その Order のサブデータシートを開くことで、特定の注文 (各行) に含まれる製品などのデータを表示および編集できます。
テーブルにサブデータシートを追加する場合は、これらのサブデータシートの使用を、重要なビジネス データの表示と編集ではなく表示に制限します。 テーブル内のデータを編集する場合は、フォームを使用してサブデータシートではなくデータを編集することをお勧めします。ユーザーが正しいセルまでスクロールしないように注意しないと、データシート ビューでデータ入力エラーが発生する可能性が高くなります。 また、大きなテーブルにサブデータシートを追加すると、テーブルのパフォーマンスに悪影響を及ぼす可能性があることにも注意してください。
次のいずれかの条件に一致するテーブルを作成すると、Microsoft Access によってサブデータシートが自動的に作成されます。
-
テーブルは 一対一リレーションシップにあります。
-
テーブルは、テーブルの SubdatasheetName プロパティが Auto に設定されている、一対多リレーションシップの "1" 側です。
リレーションシップは、関連テーブルの 主キー フィールドと 外部キー フィールドを照合することによって定義されます。
また、データベース内の任意のテーブル、クエリ、または フォーム にサブデータシートを追加することもできます。 データシート ビューでは、フォームに一度に表示できるサブデータシートは 1 つだけです。
サブデータシートを開いて閉じる
テーブル、クエリ、またはフォームにサブデータシートが既に存在するかどうかを判断するには、データシート ビューで オブジェクトを開きます。 展開インジケーター (+ 記号) が存在する場合、テーブル、クエリ、またはフォームにはサブデータシートがあります。 サブデータシートが開いていると、インジケーターは - 記号に変わります。 サブデータシートは、最大 8 レベルのメインサブデータシートに入れ子にすることができます。
-
サブデータシートを開くには、レコードを表示する値の横にあるプラス記号をクリックします。
-
サブデータシートを閉じるには、マイナス記号をクリックします。
ヒント: データシート内のすべてのサブデータシートを同時に展開または折りたたみするには、[ ホーム ] タブの [ レコード ] グループで [ その他] をクリックします。 次に、[ サブデータシート] を選択し、目的のオプションをクリックします。
サブデータシートを削除または非表示にすることもできます。 サブデータシートを削除する方法については、サブデータシートの削除に関 する記事を参照してください。
ヒント: サブデータシートを非表示にするには、デザイン ビューでテーブルを開き、[ デザイン ] タブの [ 表示/非表示 ] グループで [ プロパティ シート] をクリックします。 [シート] ウィンドウで [サブデータシート名] 行を見つけて 、[なし] に変更し、変更を保存します。
サブデータシートを追加する
-
データシート ビューで、サブデータシートを追加するテーブルまたはクエリを開きます。
-
[ ホーム ] タブの [ レコード ] グループで、[ その他] をクリックし、[ サブデータシート] をポイントして、[ サブデータシート] をクリックします。
-
[ サブデータシートの挿入 ] ダイアログ ボックスで、サブデータシートとして挿入するオブジェクトの種類に対応するタブ (テーブル、 クエリ、または 両方) を選択します。
-
[ 子フィールドのリンク ] ボックスで、サブデータシートのデータを提供する 外部キー または照合フィールドとして使用するフィールドをクリックします。
-
[マスター フィールドのリンク] ボックスで、メインテーブルまたはクエリの 主キー または照合フィールドとして使用するフィールドをクリックし、[OK] をクリックします。
たとえば、顧客テーブルの各顧客レコードの関連注文を表示するサブデータシートを作成する場合は、[注文] テーブルを選択し、[ 子フィールドのリンク ] ボックスで [ 顧客 ID] を選択し、[ マスター フィールドのリンク ] ボックスで [ID] を選択します。
注: [ 子フィールドのリンク] ボックスと [ マスター フィールドのリンク] ボックスの値は、指定したフィールドに対して 1 対多の 結合 を作成します。
-
[OK] をクリックして変更を保存します。
-
テーブル、クエリ、またはフォームに追加したサブデータシートを表示するには、+ 記号をクリックします。
注: 子 (外部キー) フィールドは、サブデータシートの列として表示されません。 サブデータシートに新しいレコードを追加すると、選択したベース テーブルの主キー値が自動的に挿入されます。