[TopValues/トップ値] プロパティを使用して、指定した条件に一致する指定したレコード数を返したり、レコードの割合を返したりすることができます。 たとえば、あるフィールドのすべての値のうち、上位 10 の値または上位 25% を返すようにすることができます。
注: [TopValues/トップ値] プロパティは、追加、テーブル作成および選択のクエリでのみ使用できます。
設定
TopValues プロパティの設定は、返す値の正確な数を表す整数値、または返されるレコードの割合を表すパーセント記号 (%) が続く数値です。 たとえば、上位 10 個の値を返すには、 TopValues プロパティを 10 に設定します。上位 10% の値を返すには、 TopValues プロパティを 10% に設定します。
このプロパティは、コードには直接設定できません。 これは、クエリ ウィンドウの SQL ビューの SQL ステートメントで、TOP n または TOP n PERCENT 句を使用して設定します。
また、[TopValues/トップ値] プロパティは、クエリのプロパティ シートまたは [デザイン] タブの [ ツール] ボックスの [トップ値] ボックスを使用しても設定できます。
注: クエリのプロパティ シートまたは [デザイン] タブの [トップ値] プロパティは、値一覧とパーセント値を含むコンボ ボックスです。 ボックスでこれらの 1 つの値を選択するか、有効な設定を入力します。
解説
通常、[TopValues/トップ値] プロパティの設定は、フィールドの並べ替えと共に使用します。 トップ値を表示するフィールドは、クエリ デザイン グリッドで [並べ替え] ボックスが選択された、左端のフィールドである必要があります。 昇順の並べ替えを行うと、最下位のレコードが返され、降順の並べ替えを行うと、最上位のレコードが返されます。 返すレコード数を具体的に指定した場合、最後のレコードのうち、その値と一致する値を持つすべてのレコードも返されます。
たとえば、1 組の従業員の売上合計が以下のとおりであるとします。
売上 |
販売員 |
90,000 |
桂 |
80,000 |
山本 |
70,000 |
菅原 |
70,000 |
筒井 |
60,000 |
片山 |
50,000 |
諸田 |
[TopValues/トップ値] プロパティを 3 に設定し、[売上] フィールドを降順に並べ替えた場合、Microsoft Office Access 2007 では、次の 4 つのレコードが返されます。
売上 |
販売員 |
90,000 |
桂 |
80,000 |
山本 |
70,000 |
菅原 |
70,000 |
筒井 |
注: 重複する値を示さずに、最上位または最下位の値を返すには、クエリ プロパティ シートの [UniqueValues/固有の値] プロパティを [はい] に設定します。
使用例
次の例では、最も高価な製品を表示するフォームの [RecordSource/レコード ソース] プロパティに、最も高価な 10 の製品を返す SQL 文字列を割り当てます。
Dim strGetSQL As String
strGetSQL = "SELECT TOP 10 Products.[ProductName] " _ & "AS TenMostExpensiveProducts, " _ & "Products.UnitPrice " _ & "FROM Products " _ & "ORDER BY Products.[UnitPrice] DESC;" Me.RecordSource = strGetSQL