Office 2019 Access 2019

サブデータシートはテーブルプロパティで手動設定できる

投稿日:2022年2月5日 更新日:

Accessのテーブル間でリレーションシップの設定すると、2つのテーブルに関連性が生じます。

テーブルをデータシートビューで開くと、各レコードの左側に[+](展開インジゲーター)が表示されていることがあります。

[+]をクリックして展開すると、関連付けされたテーブルが[サブデータシート]として表示され、共通フィールドのデータを参照できます。

このサブデータシートは、リレーションシップの設定をすると、自動的に表示されるようになっていますが、手動でリレーションシップが設定されていないテーブルをサブデータシートとして表示させることもできます。

また、サブデータシートを非表示にすることもできます。

サブデータシートが設定されたテーブル

参考ここでのウィンドウは、[タブ付きドキュメント](既定)の設定にしています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...

続きを見る

テーブルの確認

ここでは、以下の3つのテーブルを使って解説します。

  • T_社員名簿
  • T_商品管理
  • T_売上記録

以下は、テーブル[T_社員名簿]のデザインビューとデータシートビューです。主キーは、[社員ID]です。

テーブル[T_社員名簿]のデザインビューとデータシートビュー

以下は、テーブル[T_商品管理]のデザインビューとデータシートビューです。主キーは、[商品ID]です。

テーブル[T_商品管理]のデザインビューとデータシートビュー

以下は、テーブル[T_売上記録]のデザインビューとデータシートビューです。主キーは、[ID]です。

テーブル[T_売上記録]のデザインビューとデータシートビュー

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

テーブル間でリレーションシップの設定をします。

[データベースツール]タブの[リレーションシップ]グループにある[リレーションシップ]をクリックします。

リレーションシップ

たとえばテーブルどうしでIDフィールドや名前フィールドが一致しなければならないなど、テーブル間のデータの関連付けを定義します。

[データベースツール]タブの[リレーションシップ]

[リレーションシップデザイン]タブの[リレーションシップ]グループにある[テーブルの追加]をクリックします。

[テーブルの表示]から3つのテーブルを選択して[追加]ボタンをクリックします。

すべてのテーブルを選択する場合は、[Shift]キーを使って選択すると効率的です。先頭のテーブルを選択後、[Shift]キーを押したまま、最後のテーブルを選択します。

連続したテーブルを選択する場合は[Shift]キー、連続していないテーブルの選択の場合は[Ctrl]キーを使用します。

テーブルが表示されたら、[テーブルの表示]は[閉じる]ボタンをクリックして閉じます。

[リレーションシップデザイン]タブの[テーブルの追加]

参考バージョンによって異なると思いますが、[テーブルの追加]やショートカットメニューから[テーブルの表示]をクリックすると、Microsoft 365のAccessとAccess 2021では[テーブルの追加]作業ウィンドウとして表示されます。

クエリデザインの「テーブルの追加」は作業ウィンドウに表示される

リレーションシップの作成

ここでは、以下のようにリレーションシップを設定します。

[主キー]のテーブル側に[1]、関連テーブル側に[∞]が表示されます。

また、[主キー](1)が設定されたテーブルのことを[主テーブル]、[外部キー](∞)が表示されたテーブルを[関連テーブル]と呼びます。

リレーションシップ

参考リレーションシップは、テーブルの主キーのあるテーブルから、関連テーブルの共通フィールドへドラッグします。

[リレーションシップ]ダイアログボックスが表示されますので、[参照整合性]のチェックボックスをオンにして、[作成]ボタンをクリックします。

[リレーションシップ]ダイアログボックスの[参照整合性]

リレーションシップについては、以下の記事で解説しています。参照整合性の設定ができない場合の解決方法も記していますので、参考にしてください。

リレーションシップの作成と参照整合性の設定

Accessでは、複数のテーブルがあって、そのテーブル間の共通フィールドを関連付けることができます。この関連付けのことを[リレーションシップ ...

続きを見る

サブデータシートを開いて使用する

サブデータシートは、テーブル間にリレーションシップを設定すると自動的に設定されます。

リレーションシップの設定後、テーブルをデータシートビューで開くと、レコードの左側に[+]マークが表示されているテーブルがあります。

テーブル[T_社員名簿]と[T_商品管理]には、[+](展開インジゲーター)が表示されています。

テーブル[T_社員名簿]の[+](展開インジゲーター)

テーブル[T_商品管理]の[+](展開インジゲーター)

テーブル[T_売上記録]には、表示されていません。

テーブル[T_売上記録]のデータシートビュー

リレーションシップで一側のテーブル(主テーブル)には、自動的にサブデータシートが表示されます。

各レコードの[+](展開インジデーター)をクリックすると、多側のテーブル(関連テーブル)のレコードが表示されます。

以下は、テーブル[T_社員名簿]の[K004]と[K005]の[+]をクリックして展開しています。

テーブル[T_社員名簿]のサブデータシート

以下は、テーブル[T_商品管理]の[S1001]の[+]をクリックして展開しています。

テーブル[T_商品管理]のサブデータシート

[+]をクリックすると[-]になります。サブデータシートを閉じる場合は、[-]をクリックします。

サブデータシートでレコードの追加

サブデータシートでも、通常のテーブルと同じようにレコードの追加や変更ができます。

テーブル[T_商品管理]の[S1001]の[+]をクリックして、サブデータシートに新規レコードを追加します。

サブデータシートに新規レコードを追加

リレーションシップが設定されているフィールドには、自動で値が入力されます。

以下は、テーブル[T_売上記録]です。新しいレコードが追加されています。

テーブル[T_売上記録]に追加された新規レコード

テーブル[T_社員名簿]の[K004]のサブデータシートを確認すると、以下のようになっています。

テーブル[T_社員名簿]のサブデータシート

参考サブデータシートを開いている状態で、そのテーブルをデザインビューで開こうとすると、以下のメッセージウィンドウが表示されます。サブデータシートを閉じてから、デザインビューを開くようにしてください。

テーブル"〇〇"にバインドされているオブジェクトが開かれているか、他のユーザーがテーブルを開いています。テーブルを読み取り専用で開きますか?

テーブルを読み取り専用で開くには、[はい]をクリックしてください。

テーブルを読み取り/書き込み可能な状態で開くには、[いいえ]をクリックし、テーブルと、テーブルにバインドされているすべてのオブジェクトが閉じていることを確認して、デザインビューでテーブルを開き直してください。

警告メッセージウィンドウ

サブデータシートの設定

サブデータシートが自動設定されたテーブルをデザインビューで開いて確認してみます。

テーブル[T_社員名簿]をデザインビューで開いて、[テーブルデザイン]タブの[表示/非表示]グループにある[プロパティシート]をクリックします。

プロパティシートは、キーボードから[F4]キーを押しても、表示できます。

キーボード[F4]キー

テーブルプロパティが表示されます。

[サブデータシート名]は[自動]となっています。

リレーションシップを設定した一側のテーブル(主テーブル)は、[自動]となります。

テーブルプロパティの表示

サブデータシートを非表示にしたい場合

サブデータシートを非表示にしたい場合は、プロパティの[サブデータシート名]のプルダウンメニューから[なし]を選択します。

[サブデータシート名]のプルダウンメニュー

[サブデータシート名]のプルダウンメニューから[なし]を選択

データシービューに切り替えると、以下のように[+](展開インジゲーター)は表示されません。

データシートビューに切り替えたテーブル

参考プロパティの[サブデータシート名]のプルダウンメニューには、クエリを作成していれば、クエリも表示されます。

サブデータシートに他のテーブルを表示したい場合

テーブル[T_社員名簿]のサブデータシートには、テーブルの[T_売上記録]のデータが表示されています。

テーブル[T_社員名簿]のサブデータシート

このサブデータシートにテーブル[T_商品管理]のデータを表示したいと思います。

テーブル[T_社員名簿]をデザインビューで開いて、テーブルプロパティを表示します。

[サブデータシート名]に[テーブル.T_商品管理]を選択します。

[リンク子フィールド]に[開発担当ID]、[リンク親フィールド]に[社員ID]を設定します。

テーブルプロパティで設定[サブデータシート名][リンク子フィールド][リンク親フィールド]

データシートビューに切り替えると、以下のようにサブデータシートには、テーブル[T_商品管理]のデータが表示されるようになります。

既定の状態に戻したい場合は、プロパティの[サブデータシート名]を[自動]にします。

テーブル[T_社員名簿]のサブデータシート

参考リレーションシップを設定していない場合は、[リンク子フィールド]と[リンク親フィールド]を指定しますが、リレーションシップが設定されている場合は、自動的に設定されます。

先にリレーションシップで以下のように設定していた場合は、

リレーションシップ

テーブル[T_社員名簿]の[+](展開インジゲーター)をクリックすると、[サブデータシートの挿入]ダイアログボックスが表示されます。

どのテーブルのデータを表示するかを選択します。

テーブルを選択すると、[リンク子フィールド]と[リンク親フィールド]は自動で設定されます。

[サブデータシートの挿入]ダイアログボックス

関連テーブルにサブデータシートを設定

リレーションシップの設定をすると、自動的に一側のテーブル(主テーブル)にサブデータシートが設定されますが、手動で設定すれば、多側のテーブル(関連テーブル)にもサブデータシートを設定できます。

テーブル[T_売上記録]にテーブル[T_商品管理]のデータを表示するようにしたいと思います。

テーブル[T_売上記録]のデータシートビュー

テーブル[T_売上記録]をデザインビューで開いて、テーブルのプロパティを表示します。

テーブル[T_売上記録]のテーブルプロパティ

[サブデータシート名]に[テーブル.T_商品管理]を指定します。[リンク子フィールド]と[リンク親フィールド]は自動で設定されます。

テーブルプロパティの設定

データシートビューに切り替えると、以下のようになります。

サブデータシートを表示すると、商品IDの情報を参照できます。工夫して分かりやすいように設定してみてください。

テーブル[T_売上記録]のサブデータシート

データシートビューで設定

データシートビューでも設定できます。

サブデータシートを追加したいテーブルをデータシートビューで開きます。ここでは、テーブル[T_売上記録]を開きます。

[ホーム]タブの[レコード]グループにある[その他]から[サブデータシート]-[サブデータシート]をクリックします。

[ホーム]タブの[その他]から[サブデータシート]-[サブデータシート]

[サブデータシートの挿入]ダイアログボックスが表示されます。

サブデータシートとして表示したいテーブルを選択します。[リンク子フィールド]と[リンク親フィールド]は自動で設定されます。

リレーションシップを設定していない場合は、[リンク子フィールド]と[リンク親フィールド]を指定します。

[OK]ボタンをクリックします。

デザインビューで設定した場合と同じように作成できます。

[サブデータシートの挿入]ダイアログボックス

サブデータシートがあるテーブルでフォームを作成

サブデータシートがあるテーブルでフォームを作成すると、自動的にサブフォームを含むフォームを作成できます。

テーブル[T_商品管理]を選択して、[作成]タブの[フォーム]グループにある[フォーム]をクリックします。

[作成]タブの[フォーム]グループにある[フォーム]

商品IDに関連付けされたサブフォームが自動で作成できます。

作成されたサブフォーム付きのフォーム

以下の記事で解説しています。

サブフォームを含むフォームを簡単作成

Accessで1つのフォーム上に2つのテーブルの情報を表示して、同時に閲覧できると便利な場合があります。 たとえば、[得意先]テーブルと[受 ...

続きを見る

参考サブフォームを含むフォームは、フォームウィザードを使って作成する方法もあります。メインフォームとサブフォームをウィザードで作成します。

フォームウィザードを使ってサブフォームを含むフォームを作成

フォームウィザードで2つのテーブルやクエリを指定して、関連付けされたメインフォームとサブフォームを作成できます。 フォーム作成のもとになるテ ...

続きを見る

コントロールの[サブフォーム/サブレポート]ボタンを使用して、メインフォームの任意の位置へサブフォームを組み込むこともできます。

サブフォームウィザードを使ってメインフォームへサブフォームを組み込む

メインフォームにサブフォームを組み込んで、サブフォームを含むフォームを作成できます。 コントロールの[サブフォーム/サブレポート]ボタンを使 ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

関連記事30件

Profile

-Office 2019 Access 2019

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.