UniqueRecords プロパティを使用し、クエリ自体に存在するフィールドだけでなく、基盤となっているデータ ソースのすべてのフィールドに基づいて一意のレコードのみを返すかどうかを指定できます。
注: UniqueRecords プロパティは、追加アクション クエリ、表作成アクション クエリ、選択クエリにのみ適用されます。
設定
UniqueRecords プロパティでは、次の設定が使用されます。
設定 |
説明 |
Yes |
重複するレコードを返しません。 |
No |
(既定値) 重複するレコードを返します。 |
クエリのプロパティ シートまたは クエリ ウィンドウ の SQL ビュー に UniqueRecords プロパティを設定できます。
注: SQL ステートメントを使用して新しいクエリを作成するとき、このプロパティを設定します。 述語の DISTINCTROW は、UniqueRecords プロパティ設定に対応します。 述語の DISTINCT は、UniqueValues プロパティ設定に対応します。
解説
重複するフィールドだけでなく、重複するレコード全体に基づいてデータを省略するとき、UniqueRecords プロパティを使用できます。 Microsoft Office Access 2007 では、あるレコードの 1 つのフィールドの値が別のレコードの同じフィールドの値と異なる限り、レコードは一意であると見なされます。
UniqueRecords プロパティは、クエリで複数のテーブルを使用し、クエリで使用されるテーブルからフィールドを選択するときにのみ有効になります。 UniqueRecords プロパティは、クエリにテーブルが 1 つしか含まれない場合は無視されます。
UniqueRecords プロパティと UniqueValues プロパティは、一度にいずれかのみを [はい] に設定できるという点で関連しています。 UniqueRecords を [はい] に設定すると、Access では UniqueValues が自動的に [いいえ] に設定されます。 ただし、両方を [いいえ] に設定することは可能です。 両方のプロパティを [いいえ] に設定すると、すべてのレコードが返されます。
例
この例のクエリでは、[受注] テーブルに少なくとも 1 つの注文が入っている [顧客] テーブルから顧客の一覧が返されます。
[顧客] テーブル
会社名 |
得意先コード |
Ernst Handel |
ERNSH |
Familia Arquibaldo |
FAMIA |
FISSA Fabrica Inter. Salchichas S.A. |
FISSA |
Folies gourmandes |
FOLIG |
[受注] テーブル
得意先コード |
受注 ID |
ERNSH |
10698 |
FAMIA |
10512 |
FAMIA |
10725 |
FOLIG |
10763 |
FOLIG |
10408 |
次の SQL ステートメントは、次のテーブルの顧客名を返します。
SELECT DISTINCTROW Customers.CompanyName, Customers.CustomerID
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
返される顧客 |
得意先コード |
Ernst Handel |
ERNSH |
Familia Arquibaldo |
FAMIA |
Folies gourmandes |
FOLIG |