您可以使用 TopValues 屬性來傳回指定數量的記錄,或是符合您指定準則之記錄的百分比。 例如,您可能想要傳回某欄位中所有值的前 10 個值或前 25% 的值。
附註: TopValues 屬性僅適用於新增查詢、產生資料表查詢以及選取查詢。
設定
TopValues 屬性設定是代表要傳回之精確數字值的一個整數值,或是一個代表要傳回之記錄的百分比數字值,後面接著百分比符號 (%)。 例如,若要傳回前 10 個值,請將 TopValues 屬性設為 10;若要傳回前百分之十的值,請將 TopValues 屬性設為 10%。
您不能在程式碼中直接設定此屬性。 它得在查詢視窗的 SQL 檢視中,透過在 SQL 陳述式裡使用 TOP n 或 TOP n PERCENT 子句來進行設定。
您也可以藉由使用查詢的屬性表,或是 [設計] 索引標籤中 [工具] 底下的 [臨界數值] 方塊,來設定 TopValues 屬性。
附註: 查詢屬性表以及 [設計] 索引標籤中的 TopValues 屬性為一個下拉式方塊,其中包含一份值和百分比值的清單。 您可以選取這些值的其中之一,或是在方塊中輸入任何有效設定。
備註
一般而言,您會和排序的欄位一起使用 TopValues 屬性。 您想要顯示臨界數值的欄位應該要是查詢設計格線中選取了 [排序] 方塊的最左欄位。 遞增排序會傳回最後面的記錄,而遞減排序會傳回最前面的記錄。 如果您指定要傳回特定數量的記錄,系統也會傳回其值符合最後一筆記錄的所有記錄。
例如,假設一組員工及其銷售總額如下。
銷售額 |
銷售人員 |
90,000 |
游 |
80,000 |
吳 |
70,000 |
季正霖 |
70,000 |
費 |
60,000 |
唐祖安 |
50,000 |
巫百勝 |
如果您將 TopValues 屬性設為 3,並以 [銷售額] 欄位進行遞減排序,Microsoft Office Access 2007 會傳回下列四筆記錄。
銷售額 |
銷售人員 |
90,000 |
游 |
80,000 |
吳 |
70,000 |
季正霖 |
70,000 |
費 |
附註: 若要傳回最前面或最後面的值,但不顯示重複值,請將查詢屬性表中的 UniqueValues 屬性設為 Yes。
範例
以下範例指派 SQL 字串將最貴的前 10 個產品傳回至表單的 RecordSource 屬性,而該表單會顯示前十個最昂貴的產品。
Dim strGetSQL As String
strGetSQL = "SELECT TOP 10 Products.[ProductName] " _ & "AS TenMostExpensiveProducts, " _ & "Products.UnitPrice " _ & "FROM Products " _ & "ORDER BY Products.[UnitPrice] DESC;" Me.RecordSource = strGetSQL