基になるテーブルのデータを変更するために、クエリ データシート ビュー データを編集できない場合があります。 この記事では、クエリ データを編集できる場合、クエリ データを編集できない場合、および基になるデータを編集するためにクエリのデザインを変更する方法について説明します。
この記事の内容
概要
データシート ビューでクエリを開いた場合、データを編集したい場合があります。 エラーが発生したり、最新の情報が表示される場合があります。 クエリの作成方法に応じて、クエリ ビューで直接データを データシート。
クエリ データシートのデータを編集しようとしても何も起こらない場合、または Windows でサウンドが再生され、編集が行わない場合は、編集を実行できません。 クロス集計クエリなど、クエリ自体を編集できない場合があります。 また、フィールドが平均などの集計関数に基づく場合など、編集しようとしているフィールドだけが編集できない場合もあります。 いずれの場合も、編集を有効にできる操作を行える場合があります。
クエリ データシート ビューでデータを編集する以外に、テーブル 更新クエリ テーブルのデータを更新することもできます。 この記事では、更新クエリについて説明します。
更新クエリの詳細については、「更新クエリを作成して実行する」を参照してください。
通常、クエリ データシート ビューでデータを編集する場合は、クエリの基になるテーブルに変更を保存します。 これらのテーブルのデータを変更したくないが、データを編集し、編集したデータを残しておきたい場合は、最初に テーブル作成クエリ を使用して、データを編集できる新しいテーブルを作成できます。 テーブル作成クエリを使用して、編集を許可しないクエリの結果を新しいテーブルとして保存し、その新しいテーブルのデータを編集することもできます。 この記事では、テーブル作成クエリを作成して実行する方法については説明されません。
テーブル作成クエリの詳細については、「テーブル作成クエリを作成する 」を参照してください。
クエリのデータを編集できるのは、いつですか?
クエリが 1 つのテーブルのみ、または互いに関連付け合っている 2 つのテーブルに基づく場合は、いつでもクエリ 一対一リレーションシップ 編集できます。
注: クエリでデータを編集できる場合でも、一部のフィールドを編集できない場合があります。 このようなケースは、次のセクションに記載されています。
クエリのデータを編集できないのは、いつですか?
次の場合、クエリ内のデータを編集したことがない。
-
クエリは 1 つの クロス集計クエリ。
-
クエリは 1 つの SQL クエリ。
-
編集しようとしているフィールドは、 集計フィールド。 この場合、他のフィールドを編集できる場合があります。
-
クエリは 3 つ以上のテーブルに基づいており、多対一リレーションシップがあります。
注: この場合、クエリ データシートを編集することはできませんが、フォームのRecordsetTypeプロパティがDynaset (矛盾した更新) に設定されている場合は、フォーム内のデータを編集できます。
-
クエリには GROUP BY 句が含まれています。
クエリを変更してデータを編集する方法
次の表に、クエリを編集できない場合のケースと、クエリ データシートを編集可能にする方法を示します。
次の場合、クエリ データシートの値を編集することはできません。 |
クエリ データシートを編集可能にする方法: |
クエリ の "固有の 値" プロパティが [はい] に設定 されています。 |
クエリの [固有の値 ] プロパティを [いいえ] に 設定します。 このプロパティの設定方法については、次のセクション 「Unique Values プロパティを No に設定する」を参照してください。 |
クエリには、リンクされた ODBC データベース テーブル ( 一意なインデックス 付き) が含まれます。また、Paradox 主キー。 |
リンク されたデータベースのベンダーが提供する方法を使用して、リンク テーブルに主キーまたは一意のインデックスを追加します。 |
基になるテーブルに対する [データの更新] アクセス許可を持っている必要があります。 |
[データの更新] アクセス許可を割り当てる。 |
クエリには複数のテーブルまたは 1 つのクエリが含まれますが、テーブルまたはクエリはデザイン ビューの結合線で結合されません。 |
適切な結合を作成します。 結合の作成方法 については、「結合を作成する」セクションを参照してください。 |
データベースは読み取り専用で開いているか、読み取り専用ドライブ上にあります。 |
[読み取り専用で開く] を選択せずにデータベースを 閉じ、もう一度開きます。または、データベースが読み取り専用ドライブにある場合は、ドライブから読み取り専用属性を削除するか、読み取り専用ではないドライブにデータベースを移動します。 |
更新しようとするレコードのフィールドが削除されたか、別のユーザーによってロックされます。 |
レコードのロックが解除されるのを待ちます。 ロックされたレコードは、レコードのロックが解除され次第、すぐに更新できます。 他のユーザーがレコードをロックした操作を完了するまで待ちます。 |
クエリはテーブルに基づいて 一対多リレーションシップテーブルに基づいており、"多" 側の結合フィールドは出力フィールドではありません。 この場合、"一" 側の結合フィールドのデータは編集できません。 |
リレーションシップの "多" 側の結合フィールドをクエリ出力フィールドに追加します。 結合フィールドを追加する方法については、「多」側の 結合フィールドをクエリ出力フィールドに追加するセクションを参照してください。 |
"多" 側の結合フィールド (データの編集後) は "一" 側にあります。 |
Shift キー を押しながら F9 キーを押 して変更を確定し、クエリを更新します。 |
一対多リレーションシップの "一" 側にテーブルの空のフィールドが存在し、結合は右外部結合です。 |
"一" 側のフィールドに値が入力されている必要があります。 "多" 側の結合フィールドは、"一" 側のそのフィールドに値がある場合にのみ編集できます。 |
リンクされた ODBC データベース テーブルを使用しているが、リンク テーブルの一意のインデックスのすべてのフィールドがクエリ出力に含されていない。 |
ODBC テーブルの一意のインデックスのすべてのフィールドをクエリ出力フィールドに追加します。 フィールドを追加する方法については、「リンク された ODBC テーブルから一意のインデックス フィールドを追加する」セクションを参照してください。 |
[固有値] プロパティを [いいえ] に設定する
-
クエリをデザイン ビューで開きます。
-
プロパティ シート が開 いていない場合は 、F4キーを押して開きます。 クエリ デザイン グリッドを 1 回クリックして、プロパティ シートにフィールド プロパティではなくクエリ プロパティが表示されます。
-
プロパティ シートで、[固有値] プロパティ ボックスを 探します。 横にあるボックスをクリックし、そのボックスの矢印をクリックして、[いいえ] を クリックします。
結合を作成する
-
クエリをデザイン ビューで開きます。
-
結合するテーブルまたはクエリごとに、そのテーブルまたはクエリの結合フィールドを、結合を作成するテーブルまたはクエリの対応するフィールドにドラッグします。
結合の作成の詳細については、「テーブルとクエリを結合する 」を参照してください。
"多" 側の結合フィールドをクエリ出力フィールドに追加する
-
クエリをデザイン ビューで開きます。
-
クエリ デザイナーで、関連する一対多リレーションシップに対応する結合を見つける。
-
一対多リレーションシップの "多" 側の結合フィールドをダブルクリックします。 結合フィールドがフィールド グリッドに表示され、それが出力フィールドであることを示します。
リンクされた ODBC テーブルから一意のインデックス フィールドを追加する
-
クエリをデザイン ビューで開きます。
-
クエリ デザイナーで、リンクされた ODBC テーブルを見つける。
-
一意のインデックス フィールドには、フィールド名の横にキー 記号が表示されます。 フィールド グリッドに表示されていない各フィールドをダブルクリックします。 各フィールドがフィールド グリッドに表示され、それが出力フィールドであることを示します。