データベースからレコードを削除する

正しくないデータや古いデータを削除すると、Access データベースが高速になり、使いやすくなることがあります。たとえば、以前のカレンダーや会計四半期を別のデータベースのアーカイブ テーブルに移動した場合、作業用データベース サイズが減少し、その実行速度が速くなります。正しくないデータや重複したデータを削除した場合、経費を削減できます。

この記事では、Access データベースからデータを削除する方法について説明します。また、個々のフィールドからデータを削除する方法 (比較的簡単な手順) と、レコード全体を削除する方法 (より複雑な手順) についても説明します。

注: この記事の情報を理解して使用するには、まず主キーと外部キーの概念について理解しておく必要があります。主キーと外部キーの概要については、「データベース設計の基本」を参照してください。

この記事の内容

データの削除について

フィールドのデータを削除する

リストのデータを削除する

データベースから関連性のないレコードを削除する

削除クエリを使用してデータベースから関連性のあるレコードを削除する

データの削除について

Access には、データ削除の種類またはレベルがいくつか用意されています。レコードの個々のデータ ポイントからデータを削除したり、テーブルからレコード全体を削除したり、テーブル全体を削除したりできます。

レコード内の一部またはすべてのデータ ポイントを空白にし、レコード自体 (行) はテーブル内の所定の位置に残したいという場合は、個々の値を削除します。データ値の削除は比較的簡単です。フィールド内のデータの一部またはすべてを選択して、Delete キーを押すだけです。

レコード全体を削除する場合、各フィールドのすべてのデータに加えて、レコードを一意にしているキー値も削除されます。この手順により、テーブルから行全体が削除されます。個々のレコードを手動で削除することも、多数のレコードを一度に削除する削除クエリを作成することもできます。

削除するレコードがデータベース内の他のどのデータとも関連性がない場合、削除手順は非常に簡単です。行全体を選択して Delete キーを押すか、削除クエリを作成して実行します。一方、削除するレコードが他のデータと関連付けられている場合や、一対多リレーションシップの "一" の側にある場合、Access において既定では関連付けられたデータを削除できないため、追加の手順を実行する必要があります。また、レコード全体を一度削除したら、削除を元に戻すことはできない点に注意してください。このため、データを削除する前には、必ずデータベースをバックアップしておく必要があります。

テーブル全体の削除は、フィールドからのデータの削除やレコード全体の削除ほど複雑ではありませんが、テーブル全体を削除する場合にテーブルを間違って削除すると、データベースの機能の一部 (場合によってはすべて) を損なう可能性があります。加えて、削除されたテーブルのすべてのデータは永久に失われます。このため、テーブルを削除する前には、必ずデータベースをバックアップしておく必要があります。

終わりに、リレーショナル データベースの設計について理解しておくと、データの削除をよりすばやくより正確に行うことができます。Access や一般的なリレーショナル データベースに慣れていない場合は、「データベース設計の基本」を参照してください。

以下のセクションの手順では、個々のフィールドからデータを削除する方法、レコード全体を削除する方法、およびテーブル全体を削除する方法について説明します。各セクションには、特定のタスクを完了するのに必要な背景情報が含まれています。

フィールドのデータを削除する

データシート ビュー ボタン イメージ にテーブルまたはクエリが開いており、フォーム ビュー ボタン イメージ およびレイアウト ビュー ボタンの画像 にデータ入力フォームが開いている場合は、個々のフィールドのデータを削除できます。

データシートからデータを削除する

  1. ナビゲーション ウィンドウで、使用するテーブルまたはクエリをダブルクリックします。これにより、テーブルまたはクエリがデータシート ビューで開きます。

  2. 削除するデータを選択します。

    データの一部またはすべてを強調表示するか、フィールド内にカーソルを置くだけです。

  3. フィールドのデータのすべてを選択した場合、Delete キーを押します。

    または

    [ホーム] タブの [レコード] グループで、[削除] をクリックします。

    または

    フィールドにカーソルを置いた場合、必要に応じて Delete キーまたは BackSpace キーを押します。

フォームからデータを削除する

  1. ナビゲーション ウィンドウで、使用するフォームをダブルクリックします。これにより、フォームがフォーム ビューで開きます。

    または

    ナビゲーション ウィンドウで、使用するフォームを選択し、[ホーム] タブの [表示] グループで [表示] をクリックして、[レイアウト ビュー] をクリックします。

  2. 削除するデータを選択します。

    データの一部またはすべてを強調表示するか、フィールド内にカーソルを置くだけです。

  3. フィールドのデータのすべてを選択した場合、Delete キーを押します。

    または

    [ホーム] タブの [レコード] グループで、[削除] をクリックします。

    または

    フィールドにカーソルを置いた場合、必要に応じて Delete キーまたは BackSpace キーを押します。

    注記: エラー メッセージが表示され、データを削除できない場合があります。次のいずれかの要因により、削除できない可能性があります。

    • 仕様上、一部の種類のクエリからはデータを削除できない   : たとえば、クロス集計クエリから返されたデータや、演算フィールドなど、データベースの使用時に数式によって計算されるが、テーブルには格納されない値を、編集または削除することはできません。フォームがデータを削除できないクエリに基づいている場合、そのフォームからデータを削除することはできません。

    • データを削除するのに必要な権限がない   : システム管理者またはデータベース デザイナーに問い合わせてください。

    • フィールドが空白値または null 値を受け入れない   : 必要な権限がある場合は、デザイン ビューでテーブルを開き、[必要な領域] テーブル プロパティを [はい] から [いいえ] に変更します。

    • リストから情報を削除しようとしている   : フォームのデータシートでは、Access によって一方の端に下矢印が配置されるため ( 空のルックアップ リスト )、常にリストを見分けることができます。リスト内の値を削除する方法については、この記事の次のセクションを参照してください。

ページの先頭へ

リストのデータを削除する

2 種類のリスト (値リストおよびルックアップ リスト) からデータを削除できます。値リストには、定義済みの値のセット (ユーザーまたはデータベース デザイナーが手動で入力した値) が表示されます。一方、ルックアップ リストではクエリを使用して別のテーブルまたは別のクエリから値が取得された後、返されたそれらの値がリストに追加されます。

値リストの項目は、レコードの他の値と同じテーブルに存在します。一方、ルックアップ リストのデータは 1 つ以上の別のテーブルに存在します。値リストからデータを削除するには、テーブルを開いて項目を編集します。

ルックアップ リストからデータを削除するには、追加の手順が必要です。その手順は、ルックアップ リストのクエリがテーブルと他のクエリのどちらからデータを取得しているのかによって異なります。ルックアップ リストのクエリがテーブルに基づいている場合は、そのテーブルと、リストに表示するデータを含むフィールドとを識別します。その上で、取得先テーブルを開き、フィールド内のデータを編集します。

ルックアップ リストのクエリが別のクエリに基づいている場合は、その別のクエリを開き、そのクエリがデータの取得先としているテーブルおよびフィールドを検索して、そのテーブル内の値を変更します。

次の手順では、値リストとルックアップ リストの両方のデータを削除する方法について説明します。

値リストからデータを削除する

  1. ナビゲーション ウィンドウで、変更するテーブルを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

  2. デザイン グリッドの上部で、値リストが含まれるテーブル フィールドを選択します。

  3. デザイン グリッドの下部で、[ルックアップ] タブをクリックし、[値集合ソース] プロパティを見つけます。

    既定では、値リストの項目は二重引用符で囲まれており、各項目はセミコロンで区切られています。たとえば、"Excellent";"Fair";"Average";"Poor" のようになっています。

  4. 必要に応じて、リストから項目を削除します。削除する各項目を囲んでいる引用符も削除してください。さらに、先頭のセミコロンやセミコロンのペア (;;) が残らないようにし、リストの最後の項目を削除する場合は、最後のセミコロンを削除します。

    注: 値リストから削除した項目がテーブル内のレコードによって既に使用されている場合、削除された項目は、変更を加えない限り、レコードの一部として残ります。たとえば、会社が A 市に倉庫を所有していて、その建物を売却した場合を想定します。倉庫の一覧から "A 市" を削除しても、それらの値に変更を加えない限り、テーブルには "A 市" というレコードが残ります。

ルックアップ リストからデータを削除する

  1. ナビゲーション ウィンドウで、変更するテーブルを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

  2. デザイン グリッドの上部で、ルックアップ フィールドを選択します。

  3. デザイン グリッドの下部で [ルックアップ] タブをクリックし、[値集合タイプ] プロパティと [値集合ソース] プロパティを探します。

    [値集合タイプ] プロパティに [テーブル/クエリ] が表示され、[値集合ソース] プロパティにテーブルまたは別のクエリを参照するクエリが含められます。

    注: ルックアップ フィールドのクエリは、常に SELECT という語で始まります。

    通常 (ただし、必ずというわけではない)、次の基本的な書式を使用するクエリを選択します: SELECT [table_or_query_name].[field_name] FROM [table_or_query_name]

    この場合、クエリには 2 つの句 (SELECT と FROM) が含まれています。最初の句はテーブルとそのテーブル内のフィールドを参照しているのに対し、2 番目の句はテーブルのみを参照しています。注意する必要があるのは、FROM 句では常に取得先テーブルまたはクエリの名前が宣言されているという点です。SELECT 句にはテーブルまたはクエリの名前が常に含まれているわけではありませんが、少なくとも 1 つのフィールドは必ず含まれています。一方、すべての FROM 句は常にテーブルまたはクエリを参照しています。

  4. 次のいずれかの操作を行います。

    • ルックアップ フィールドのクエリが別のクエリを参照している場合、[ビルド] ボタンをクリックし (プロパティ シートの [データ] タブでは、次に [ビルダー] ボタン をクリック)、クエリをデザイン ビューで開きます。クエリ デザイナーの上部に表示されるテーブルの名前を書き留め、手順 5 に進みます。

    • ルックアップ フィールドのクエリがテーブルを参照している場合、テーブルの名前を書き留め、手順 5 に進みます。

  5. ナビゲーション ウィンドウで、ソース テーブルをダブルクリックしてデータシート ビューで開きます。

  6. ルックアップ リストで使用されているデータが含まれているフィールドを探し、必要に応じてそのデータを編集します。

ページの先頭へ

データベースから関連性のないレコードを削除する

データベースからレコード全体を削除する場合、各フィールドのデータを削除し、キー値 (レコードを一意にしている値) も削除します。レコードが他のどのレコードとも関連していない場合 (つまり、キー値がデータベース内の他のどのレコードまたはテーブルにも存在しない場合)、そのレコードを選択して Delete キーを押すことによりそのレコードを削除できます。関連性のない多数のレコード (手動で削除するには多い数) を削除する場合は、削除クエリを使用して削除することができます。次のセクションの手順では、両方のタスクを実行する方法について説明します。

関連性のないレコードを手動で削除する

  1. データシート ビューで、削除するデータが含まれているテーブルまたはクエリを開きます。

  2. 削除するレコード (行) を探し、[すべて選択] ボタン (レコードの左端または右端にある四角形) をクリックします。このとき、行を 1 つずつ削除することも、行をクリックしてドラッグすることによって隣接した複数の行を選択することも、Ctrl キーを押してマウス ボタンをクリックすることによって離れた場所にある複数の行を選択することもできます。

    レコード全体 (行全体)、または選択されたレコードのブロックの周りに境界線が表示されます。

  3. Del キーを押します。

    または

    [ホーム] タブの [レコード] グループで、[削除] をクリックします。

    または

    [すべて選択] ボタンを右クリックして [レコードの削除] をクリックします。

    [すべて選択] ボタンをクリックできない場合は、レコード内のフィールドにカーソルを置きます。次に、[ホーム] タブの [レコード] グループで、[削除] の横にある下矢印をクリックし、[レコードの削除] をクリックします。

    注: この時点で、レコードが他のデータと関連しているために削除できないことを示すエラー メッセージが表示されることがあります。そのようなメッセージが表示されたら、[OK] をクリックして、この記事の後半の「削除クエリを使用してデータベースから関連性のあるレコードを削除する」を参照してください。

  4. 削除を確認するメッセージが表示されたら、[はい] をクリックします。

削除クエリを使用して関連性のないレコードを削除する

削除クエリを使用してデータを削除する場合、関連性のないレコードと関連性のあるレコードのどちらの場合も、まず選択クエリを作成して、削除するレコードだけが返されることを確認し、最後に選択クエリを削除クエリに変換します。次のセクションでは、関連性のないレコードを削除する方法に関する背景情報と手順を示します。

削除クエリを使用してデータベースから関連性のあるレコードを削除する

関連性のあるレコードを削除する処理は、次のような手順になります。

  • 削除を計画します。データを削除するのに必要な権限があることを確認し、影響を受けるテーブルを使用するすべてのオブジェクトを他のすべてのユーザーが閉じたことを確認した後、データベースをバックアップします。

  • 削除に関連するテーブル間のリレーションシップを変更します。具体的には、[参照整合性] オプションと [レコードの連鎖削除] オプションを有効にします。これにより、影響を受けるすべてのテーブル間で連鎖的な削除が可能になり、関連するすべてのデータが削除されます。

  • 選択クエリを作成し、クエリがレコードの正しいセットを返すまで必要に応じて抽出条件を追加します。

  • 選択クエリを削除クエリに変換し、それを使用してデータを削除します。

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

ページの先頭へ

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

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

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

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

×