データシートは、行と列に配置されたデータの単純なビューです。 ナビゲーション ウィンドウでテーブルをダブルクリックすると、テーブルがデータシートとして表示されます。 データがコンパクトに表示されるため、データシートはサブフォームとして使用して、一対多リレーションシップの "多" 側のデータを表示する場合に適切に機能します。 この記事では、Access でフォームにデータシートを追加する方法について説明します。
目的に合ったトピックをクリックしてください
- フォーム上のデータシートの例を表示する
- データシートをフォームにドラッグ アンド ドロップする
- レイアウト ビューを使用して既存のフォームにデータシートを挿入する
- デザイン ビューを使用してデータシートを既存のフォームに挿入する
- 分割フォームとデータシートを含むフォームの違いを理解する
フォーム上のデータシートの例を表示する
製品カテゴリに関するデータと、それらのカテゴリ内のすべての製品を表示するフォームを作成するとします。 Categories テーブルのデータはリレーションシップの "1" 側を表し、Products テーブルのデータはリレーションシップの "多" 側を表します。 各カテゴリには、多数の製品を含めることができます。
1. メイン フォームには、リレーションシップの "1" 側のデータが表示されます。
2. データシートには、リレーションシップの "多" 側からのデータが表示されます。
データシートをフォームにドラッグ アンド ドロップする
既存のデータシートをフォームに追加する最も簡単な方法は、デザイン ビューでフォームを開き、ナビゲーション ウィンドウからフォームデザイン領域に既存のデータシート フォームをクリック、ホールド、ドラッグすることです。
この手順を開始する前にリレーションシップを正しく設定した場合、Access では、メイン フォームをデータシートにリンクする正しい値を使用して、[ 子フィールドのリンク ] プロパティと [ マスター フィールドのリンク] プロパティが自動的に設定されます。
[マイ リンク子フィールド] プロパティと [リンク マスター フィールド] プロパティが空白です
Access でサブフォーム コントロールをメイン フォームにリンクする方法を決定できない場合は、サブフォーム コントロールの [子フィールドのリンク] プロパティと [ マスター フィールドのリンク] プロパティは空白のままにします。 これらのプロパティは手動で設定する必要があります。
レイアウト ビューを使用して既存のフォームにデータシートを挿入する
データベース内のテーブル間のリレーションシップを既に定義している場合は、レイアウト ビューを使用して、データシートを既存のフォームにすばやく追加できます。 リレーションシップの "多" 側のフィールドをリレーションシップの "一方" 側に基づくフォームに追加すると、関連レコードを表示するデータシートが自動的に作成されます。
ナビゲーション ウィンドウで既存のフォームを右クリックし、ショートカット メニューの [レイアウト ビュー] をクリックして、 レイアウト ビュー で既存のフォームを開きます。
[フィールド リスト] ウィンドウが表示されていない場合は、次の操作を行います。- Alt キーを押しながら F8 キーを押します。
または
[デザイン] タブの [ツール] グループで [既存のフィールドの追加] をクリックします。
[フィールド 一覧] ウィンドウでは、テーブルがセクションに分割されていることに注意してください。このビューで使用できるフィールドと、その下にある関連テーブルで使用できるフィールド。 [ フィールド一覧 ] ウィンドウの下部には、メイン テーブルに直接関連しないその他のテーブルが、[他のテーブル で使用できるフィールド] の下に表示されます。
- Alt キーを押しながら F8 キーを押します。
[ 関連テーブルで使用できるフィールド] セクションで 、データシートの最初のフィールドを含むテーブルを展開し、フィールドをフォームにドラッグします。 Access によってデータシートが作成され、フィールドが追加されます。
新しいデータシートにフィールドを追加するには、まずデータシートをクリックして選択する必要があります。 Access では、[ フィールド リスト ] ウィンドウが並べ替えられるので、データシートで使用できるフィールドが一番上に表示されます。 [ このビューで使用できるフィールド] セクションで、必要なその他のフィールドをデータシートにドラッグします。 各フィールドをデータシートにドラッグすると、カーソル バーが描画され、マウス ボタンを離したときにフィールドが挿入される場所が表示されます。
メイン フォームまたはデータシートにフィールドを追加するには、最初にメイン フォームまたはデータシートをクリックして選択し、[ フィールド リスト ] ウィンドウからフィールドをドラッグします。
[フィールド一覧] ペインの [他のテーブルで使用できるフィールド] セクションには、選択したフォームの基になっているテーブルまたはクエリに直接関連しないテーブルが含まれています。 [リレーションシップ] ウィンドウで有効なすべてのテーブル リレーションシップを定義している場合、[ 他のテーブルで使用できるフィールド] セクションの フィールドは、作成するフォームの有効な選択とは考えられません。 このセクションからフォームにフィールドをドラッグすると、[ リレーションシップの指定 ] ダイアログ ボックスが表示されます。 続行する前に、2 つのテーブルを相互に関連付けるフィールドまたはフィールドを入力する必要があります。 これを行うと、定義済みのリレーションシップに従って [ フィールド一覧 ] ペインがセクションに並べ替えされなくなります。 このダイアログ ボックスで [ キャンセル ] をクリックし、代わりにテーブルリレーションシップを再検討することをお勧めします。 リレーションシップの詳細については、リレーションシップの 作成、編集、または削除に関する記事を参照してください。
デザイン ビューを使用してデータシートを既存のフォームに挿入する
次の手順を使用して、テーブルまたはクエリに直接基づくデータシートをデザイン ビューの既存のフォームに追加します。
ナビゲーション ウィンドウでフォームを右クリックし、[デザイン ビュー] をクリックして、 デザイン ビューでフォームを開きます。
[ デザイン ] タブの [ コントロール ] グループで、[ コントロール ウィザードの使用 ] ツールが選択されている場合は、選択されないようにクリックします。
なぜでしょうか?
サブフォーム コントロール ウィザードを使用すると、別のフォーム オブジェクトが作成され、そのフォーム オブジェクトにサブフォーム コントロールが基になります。 これに対し、このプロシージャはフォームではなくテーブルまたはクエリに直接基づくデータシートを作成します。[デザイン] タブの [コントロール] グループで [サブフォーム/サブレポート] ボタンをクリックします。
フォーム デザイン グリッドで、データシートを挿入する場所をクリックします。
コントロールの端と角のハンドルをドラッグして、サブフォーム コントロールの位置を変更し、サイズを変更します。
サブフォーム コントロールの添付ラベルを編集するには、まずラベルをクリックし、ダブルクリックしてテキストを選択してから、新しいラベルを入力します。 ラベルを削除する場合は、ラベルを 1 回クリックし、DELETE キーを押します。
プロパティ シートが表示されていない場合は、F4 キーを押して表示します。
サブフォーム コントロールが現在選択されていない場合は、1 回クリックして選択します。
プロパティ シートの [ データ ] タブで、[ ソース オブジェクト ] ドロップダウン リストをクリックし、データシートに表示するテーブルまたはクエリをクリックします。 たとえば、Orders テーブルのデータを表示する場合は、 Table.Orders をクリックします。
この手順を開始する前にリレーションシップを正しく設定した場合、Access では、メイン フォームをデータシートにリンクする正しい値を使用して、[ 子フィールドのリンク ] プロパティと [ マスター フィールドのリンク] プロパティが自動的に設定されます。
[マイ リンク子フィールド] プロパティと [リンク マスター フィールド] プロパティが空白です
Access でサブフォーム コントロールをメイン フォームにリンクする方法を決定できない場合は、サブフォーム コントロールの [子フィールドのリンク] プロパティと [ マスター フィールドのリンク] プロパティは空白のままにします。 これらのプロパティは、次の手順を使用して手動で設定する必要があります。- デザイン ビューでメイン フォームを開きます。
- サブフォーム コントロールを 1 回クリックして選択します。
- プロパティ シートが現在表示されていない場合は、F4 キーを押します。
- プロパティ シートの [データ] タブで、[子フィールドのリンク] プロパティ ボックスの横にある [(...)] をクリックします。
[サブフォーム フィールド リンク ビルダー] ダイアログ ボックスが表示されます。 - [ マスター フィールド] と [ 子フィールド] ドロップダウン リストで、フォームをリンクするフィールドを選択します。 使用するフィールドがわからない場合は、[ 提案 ] をクリックして、リンクフィールドを決定するアクセス権を付与します。 作業が終了したら、[OK] をクリックします。
フォームのリンクに使用するフィールドが表示されない場合は、マスター フォームまたは子フォームのレコード ソースを編集して、フィールドが含まれていることを確認する必要がある場合があります。 たとえば、フォームがクエリに基づいている場合は、クエリ結果にリンク フィールドが存在することを確認します。 - メイン フォームを保存し、フォーム ビューに切り替えて、フォームが期待どおりに動作することを確認します。
フォームを保存するには、クイック アクセス ツール バーの [保存] をクリックするか、Ctrl + S キーを押します。
フォーム ビューに切り替え、データシートが期待どおりに動作することを確認します。
分割フォームとデータシートを含むフォームの違いを理解する
データシートを含むフォームには、異なる (通常は関連する) データ ソースのデータが表示されます。 たとえば、フォームには従業員が表示され、各従業員に割り当てられているすべてのタスクを示すデータシートが含まれている場合があります。 データシートには、それを含むフォームとは異なるデータ ソースがあります。 一方、分割フォームには 2 つのセクション (フォームとデータシート) がありますが、両方のセクションに同じデータが表示されます。 2 つのセクションは互いに追跡され、データの 2 つの異なるビューが一度に表示されます。
分割フォームの作成方法と使用方法の詳細については、「分割フォームを作成する」を参照してください。