クエリのデータを編集する

注: 最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。私たちの目的は、このコンテンツがお客様の役に立つようにすることです。お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。簡単に参照できるように、こちらに英語の記事があります。

クエリのデータシート ビューでデータを編集して、基になるテーブルのデータを変更するという操作は、状況によっては使用できない場合があります。ここでは、クエリ データを編集できる状況とできない状況、および基になるデータを編集できるようにクエリの設計を変更する方法について説明します。

この記事の内容

はじめに

クエリのデータを編集できる状況

クエリのデータを編集できない状況

データを編集できるようにクエリを変更する方法

はじめに

データシート ビューでクエリを開いたときに、データの編集が必要になることがあります。たとえば、誤りに気付いた場合や、情報が古くなっている場合などです。クエリの作成方法によっては、クエリ データシートでデータを直接編集できます。

クエリ データシートでデータの編集を試みたときに何も起きない場合や、警告音が鳴って編集が行われない場合は、編集は実行できません。これには、クロス集計クエリなど、クエリ自体が編集に対応していない場合があります。また、編集を試みたフィールドのみが編集に対応していない場合 (平均値などの集計関数に基づくフィールドなど) もあります。いずれについても、操作を加えることで編集を有効にできる場合があります。

テーブルのデータを更新するには、クエリ データシート ビューでデータを編集する方法の他、更新クエリを使用する方法もあります。ここでは、更新クエリについては説明しません。

更新クエリの詳細については、「更新クエリを作成して実行する」を参照してください。

通常、クエリ データシート ビューでデータを編集する方法は、クエリの基になっているテーブルに編集内容を反映する場合に使用します。基になるテーブルのデータは変更せずに維持しつつ、データに編集を加え、編集後のデータも残す場合には、テーブル作成クエリを使用して新しいテーブルをまず作成したうえで、そのデータを編集します。また、テーブル作成クエリを使用して、編集できないクエリ結果を新規テーブルとして保存したうえで、その新規テーブルのデータに編集を加えるという方法もあります。ここでは、テーブル作成クエリを作成および実行する方法については説明しません。

テーブル作成クエリの詳細については、「テーブル作成クエリを作成する」を参照してください。

ページの先頭へ

クエリのデータを編集できる状況

単一のテーブルのみに基づくクエリ、および、互いに一対一リレーションシップを持つ 2 つのテーブルに基づくクエリの場合は、データは常に編集できます。

注: クエリのデータを編集できる場合でも、一部のフィールドは編集できないことがあります。次のセクションで、こうしたケースの一覧を示します。

ページの先頭へ

クエリのデータを編集できない状況

以下の場合は、クエリのデータは編集できません。

  • クエリがクロス集計クエリの場合。

  • クエリが SQL クエリの場合。

  • 編集するフィールドが集計フィールドの場合。その場合、他のフィールドは編集できることがあります。

  • 3 つ以上のテーブルを基にしたクエリで、多対一対多リレーションシップがある場合。

    注: この場合、クエリデータシートを編集することはできませんが、フォームのRecordsetTypeプロパティがダイナセット (一貫性のない更新)に設定されている場合は、フォーム内のデータを編集できます。

  • クエリで GROUP BY 句を使用している場合。

ページの先頭へ

データを編集できるようにクエリを変更する方法

次の表は、クエリを編集できないケースと、その場合にクエリ データシートを編集できるようにする方法の一覧です。

クエリ データシートの値を編集できないケース

クエリ データシートで編集できるようにする方法

クエリの "Unique Values/固有の値" プロパティが [Yes/はい] に設定されている場合。

クエリの "Unique Values/固有の値" プロパティを [No/いいえ] に設定します。

このプロパティを設定する方法については、次の「"Unique Values/固有の値" プロパティを [No/いいえ] に設定する」を参照してください。

クエリの中で、一意なインデックスのない ODBC データベース リンク テーブル、または主キーのない Paradox テーブルを使用している場合。

リンクしたデータベースのベンダが定める方法で、リンク テーブルに主キーまたは固有インデックスを追加します。

基になるテーブルに対し、データの変更の権限がない場合。

データの変更の権限を割り当てます。

複数のテーブルまたは複数のクエリを使用しているクエリで、デザイン ビューにおいてテーブルまたはクエリの間が結合線で結ばれていない場合。

適切な結合を作成します。

結合の作成方法の詳細については、「結合を作成する」を参照してください。

データベースが読み取り専用で開いているか、または読み取り専用のドライブに保存されている。

データベースをいったん閉じ、[読み取り専用で開く] をクリックせずに再度開きます。また、読み取り専用ドライブにデータベースが保存されている場合は、ドライブの読み取り専用属性を解除するか、または読み取り専用でないドライブにデータベースを移動します。

更新を試みたレコードのフィールドが、他のユーザーによって削除またはロックされている場合。

レコードのロックが解除されるのを待ちます。ロックされたレコードは、ロックが解除されると直ちに更新できます。レコードのロックの原因となった操作を当該ユーザーが完了するまで待ちます。

一対多リレーションシップのあるテーブルを基にしたクエリで、"多" の側の結合フィールドが出力フィールドでない場合。この場合、"一" の側の結合フィールドのデータは編集できません。

リレーションシップの "多" の側の結合フィールドをクエリ出力フィールドに追加します。

結合フィールドを追加する方法の詳細については、「"多" の側の結合フィールドをクエリの出力フィールドに追加する」を参照してください。

"多" の側の結合フィールド (データの編集後) が "一" の側にある場合。

Shift キーを押しながら F9 キーを押して変更内容をコミットし、クエリを更新します。

一対多リレーションシップの "一" の側のテーブルに空白フィールドがあり、結合が右外部結合の場合。

"一" の側の当該フィールドに必ず値を持たせます。"多" の側の結合フィールドを編集できるのは、"一" の側の当該フィールドに値がある場合のみです。

ODBC データベースのリンク テーブルを使用している場合で、リンク テーブルの固有インデックスのフィールドの中に、クエリ出力に含まれていないものがある場合。

ODBC テーブルの固有インデックスのすべてのフィールドをクエリの出力フィールドに追加します。

フィールドを追加する方法については、「ODBC のリンク テーブルから一意のインデックス フィールドを追加する」を参照してください。


ページの先頭へ

"Unique Values/固有の値" プロパティを [No/いいえ] に設定する

  1. デザイン ビューでクエリを開きます。

  2. プロパティ シートが開いていない場合は、F4 キーを押して開きます。クエリ デザイン グリッドを 1 回クリックして、プロパティ シートに表示されているのがフィールドのプロパティではなくクエリのプロパティであることを確認します。

  3. プロパティ シートで、[固有の値] ボックスを見つけます。横のボックスをクリックし、中の矢印をクリックして、[いいえ] をクリックします。

結合を作成する

  1. デザイン ビューでクエリを開きます。

  2. 他のテーブルまたはクエリと結合する各テーブルまたはクエリについて、そのテーブルまたはクエリから結合フィールドをドラッグして、結合を作成するテーブルまたはクエリの該当するフィールドにドロップします。

結合の作成の詳細については、「テーブルおよびクエリを結合する」を参照してください。

"多" の側の結合フィールドをクエリの出力フィールドに追加する

  1. デザイン ビューでクエリを開きます。

  2. クエリ デザイナで、目的の一対多リレーションシップに対応する結合を見つけます。

  3. 一対多リレーションシップの "多" の側の結合フィールドをダブルクリックします。その結合フィールドがフィールド グリッドに表示され、出力フィールドになったことが示されます。

ODBC のリンク テーブルから一意のインデックス フィールドを追加する

  1. デザイン ビューでクエリを開きます。

  2. クエリ デザイナで、ODBC のリンク テーブルを見つけます。

  3. 固有インデックス フィールドではフィールド名の横に鍵の記号が表示されます。フィールド グリッドにまだ表示されていない各フィールドをダブルクリックします。各フィールドがフィールド グリッドに表示され、出力フィールドになったことが示されます。

ページの先頭へ

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×