排序數據在讓報表或窗體有效且易於使用方面可以扮演重要的角色。 例如,比起以隨機順序出專案的目錄,依字母順序或單價列出產品的產品目錄更容易使用。
本主題說明如何在檢視及設計數據表、查詢、表單或報表時排序記錄。
本文內容
簡介
您可以針對一或多個字段來排序數據表、查詢、表單或報表中的記錄。 只要設計工作最少,您和表單或報表的使用者就可以選擇記錄的排序方式。
例如,當您設計產品目錄報表時,您可以選擇依字母順序列出產品。 當您設計物件時選擇的順序會變成物件的預設排序順序。 但檢視查詢或報表時,每個使用者都可以按照他們想要的方式排序記錄,例如依價格或供貨商排序。
附註: 檢視可以排序檢視中顯示的任何欄位,但包含附件或 OLE 物件的欄位除外。
您可以在多個字段上排序記錄,藉此微調結果。 針對多個字段排序時,請務必找出最外層和最內部排序字段。 您必須將適當的欄位指定為內部和外部排序欄位,才能取得您想要的結果。 例如,假設您想要排序 FirstName 和 LastName 字段上的 [連絡人] 資料表。 如果您想要在每一個姓氏中將名字從 A 排序到 Z (或 Z 到 A) ,FirstName 就是最內部的欄位。 另一方面,如果您想要在每一個名字中排序姓氏,LastName 就是最內部的欄位。 另一個方法是,先將記錄排序 (LastName 字段最外) ,然後在 FirstName 字段 (最內部) 。
1. LastName 是最外部的欄位,而 FirstName 是最內側的欄位
2. FirstName 是最外部的欄位,而 LastName 是最內側的欄位
套用排序順序時,請記得數位、文字和特殊字元是根據您計算機所選取的語言和地區設定來排序。 如果 [存取選項] 對話框中指定的語言和地區設定與 控制台 中指定的語言和地區設定不符,則產生的排序順序可能不符合您的預期。
檢閱或變更默認語言或地區
若要檢閱 Access 中的語言設定,請按兩下 [ 檔案 > 選項]。 在 [建立資料庫] 底下的 [一般] 索引標籤上,檢閱或變更 [新增資料庫排序順序] 列表框中的值。 如果您想要使用下列其中一種語言,請將選項設為 [ 通用 格式]:Afrikaans、Arabic、Basque (Basque) 、保加利亞文、白俄羅斯文、加泰蘭文、荷蘭文、英文、法羅文、法西文、德文-標準版、希臘文、希伯來文、印地文、印尼文、義大利文、馬來文、葡萄牙文、俄文、塞爾維亞文、斯瓦希里文和烏都文。 請注意,此設定只會影響新的資料庫。 若要將此設定套用至現有的資料庫,請先 壓縮 資料庫。
若要壓縮資料庫:
-
按兩下 [資料庫工具 > 壓縮及修復資料庫]。
若要檢閱計算機的地區設定,請參閱 變更 Windows 地區設定以修改某些數據類型的外觀。
排序檢視中的記錄
附註: 在 Access 中,排序報表與排序數據表、查詢或表單稍有不同。
排序報表
-
在 [版面配置檢視] 或 [設計視圖] 中開啟報表。
-
如果 [ 群組、排序與合計 ] 窗格未開啟,請在 [群 組 & 合計 ] 群組中 (在 [版面配置檢視] 的 [ 格式 ] 索引卷標上,或在 [設計視圖]) 的 [ 設計 ] 索引卷標上,按兩下 [ 群組 & 排序]。
-
執行下列其中一個動作:
-
如果報表不是群組或排序,請按兩下 [群組]、[排序] 和 [合計] 窗格中的 [新增群組],然後選取最外部的排序字段。 按兩下拉式箭號,然後選擇值的排序方式。 按兩下 [更多],然後按兩下具有 頁首區段右側的箭號,然後選取 [不含頁首區段]。 針對每個排序欄位重複這些步驟,最內部排序欄位會顯示在底部。
-
如果報表已分組或排序,請仔細檢閱現有的層級並進行變更。 若要變更欄位,請使用第一個下拉式箭號。 若要變更順序,請按兩下第二個下拉式箭號。 若只要將群組層次變更為排序層級,請 將頁首區段 變更為 不含頁首區段。
-
提示: 若要排序單一欄位的報表,請在 [版面配置檢視] 中開啟報表,以滑鼠右鍵按下字段,然後選取您想要的排序命令。 例如,如果您選取 [年齡] 字段,請按兩下 [ 最小到最大排序 ] 或 [ 從最大到最小排序]。 但是,如果報表已分組,或是您想要針對多個字段排序,則必須使用 [ 群組]、[排序] 和 [合計 ] 窗格。
排序數據表、查詢或表單
-
找出您要排序的欄位。 若要針對兩個或多個字段進行排序,請找出最內部和最外部排序欄位的欄位。
-
以滑鼠右鍵按鍵按下對應到最內部欄位的欄或控件中的任何位置,然後按兩下其中一個排序命令。 命令會隨所選欄位中的數據類型而有所不同。
附註: 針對 [是/否] 數據類型的字段排序數據時,會將 “Yes”、“True” 或 “On” 的值視為「已選取」,而「否」、「False」或「關閉」的值會被視為「已清除」。 此欄位類型的預設顯示器為複選框,但您可以將其設定為文字框或下拉式方塊顯示。 如果您將這類欄位的顯示器變更為文字框或下拉式方塊,它仍會排序為「已選取」或「已清除」。
1. 數位、貨幣、自動編號
2. 簡短文字 (文字) 、長文字 (備忘) 、超連結
3. 是/否
4. 日期/時間
-
針對每個排序欄位重複上一個步驟,結尾為最外部的排序欄位。
記錄會重新排列成符合排序順序。
附註: 如果文字欄位包含 Null 和零長度字串,則在以遞增順序排序時,會先列出含有 Null 值的記錄,接著列出零長度字元串的記錄,然後列出含有非空白值的記錄。
瞭解排序期間如何處理特殊字元、前置空格和負值
如果欄位中的值是以特殊字元開頭,例如連字元、括弧或其他符號,您將會在以遞增順序排序時觀察下列行為:
-
以空格字元開頭的值會出現在英數位元值之前。
-
以引弧括住的值會跟隨以空格開頭但位在英數位元值前面的值。
-
以減號 (開頭的值 -) 在以加號 + () 符號開頭的值之前。
-
對於所有其他符號,順序是透過查看字元的 ASCII 字元代碼來決定。 例如,貨幣符號的代碼 ($) 為 36,等號 (=) 的代碼為 61,因此從 $ 開始算起的值會出現在以 =開頭的值之前。
若要覆寫此順序,您可以選擇忽略欄位中所有值的第一個字元。 如果欄位中的值一律以單一特殊字元做為開頭,例如減號,或是使用相同數目的特殊字元,那麼這個技巧就可以運作,如此一來,您就會知道要忽略多少個字元。 如需如何對部分值進行排序的逐步資訊,請參閱 根據欄位中的部分值來排序記錄一文。 如果要忽略的字元數不同,您可以指定自定義排序順序。 如需逐步資訊,請參閱依 自定義順序排序記錄一文。
-
請記住,您無法只從單一字段移除排序順序。 若要移除所有排序欄位的排序,請在 [ 常用 ] 索引標籤的 [ 排序 & 篩選 ] 群組中,按兩下 [ 清除所有排序],然後套用您想要的排序順序。
其他排序案例
當您使用排序命令時,會使用欄位的數據類型及每個欄位的完整值來判斷記錄的順序。 但如果您想要以自定義順序排序而不是依字母順序排序的文字值,例如星期一、星期二等等,該怎麼辦? 或者,您想要排序包含IP位址的文字欄位? 如果排序命令不符合您的排序需求,請參閱下列主題:
-
依據欄位中的部分值排序記錄 想要根據欄位中的前幾個或最後幾個字元來排序記錄嗎? 如果您習慣撰寫簡單的表達式,請參閱本主題,說明如何使用表達式來擷取部分值。
-
以區分大小寫的順序排序記錄 Access 會忽略文字值的大小寫。 例如, smith 和 Smith 的值會視為完全相同,而您無法控制要先顯示哪一個值。 如果您想要執行區分大小寫的排序,請參閱本主題。
-
依據文字欄位中儲存的數值排序記錄 您是否看到以個別數位排序的記錄,而非數值? 例如,如果值為 11 和 121 的記錄出現在值 2 或 25 的記錄之前,請參閱這篇文章。
-
以自訂順序排序記錄 如果您想要排序特定的值,例如星期一、星期二 (的天名,以及 (主管) 或員工職稱等,則主管) 您有意義的順序,請參閱這篇文章。
-
排序IP位址 儲存IP位址的欄位包含多個數位和週期 (。) ,因此簡單的文字或數值排序不適用於IP位址。 請參閱本主題以瞭解如何排序IP位址。
拿掉排序順序
-
若要移除數據表、查詢或表單的排序順序,請在 [常 用 ] 索引卷標的 [ 排序 & 篩選 ] 群組中,按兩下 [ 清除所有排序]。
這會移除檢視中所有欄位的排序順序。
-
若要從報表移除排序順序,請在 [版面配置檢視] 的 [格式] 索引卷標上,單擊 [設計視圖]) 中 [設計] 索引卷標上 [群組 & 合計] 群組 (中的 [群組 & 排序] 來開啟 [群組]、[排序] 和 [合計] 窗格。 然後,按下您要移除的排序層級,然後按兩下 [ 刪除]。 排序欄位對應的專案會以 [ 排序方式] 文字開頭。 避免刪除以 群組開頭的項目,因為這會變更報表的設計。
使用物件儲存排序順序
最後套用的排序順序會自動與數據表、查詢、表單或報表一起儲存。 如果您希望它在您下次開啟物件時自動套用,請確定物件的 OrderByOnLoad 屬性設為 Yes。
由於上次套用的排序順序會不時變更,建議您定義永久 (或預設) 排序順序。 您可以指定查詢或報表的預設排序順序。 請注意,雖然目前或上次儲存的排序順序不會覆寫預設的排序順序,但只有在從檢視中移除目前或上次儲存的排序順序時,才會生效。
-
若要定義查詢的預設排序順序,請在 [設計檢視] 中開啟查詢。 將排序欄位新增至設計網格線,然後在 [ 排序] 列 中指定您想要的順序。
-
若要定義報表的預設排序順序,請使用 [版面配置] 或 [設計視圖] 中的 [ 群組、排序和合計 ] 窗格。 如需逐步資訊,請參閱 排序報表一節。
若要查看依預設排序順序排序的記錄,請在 [ 常用 ] 索引標籤的 [ 排序 & 篩選 ] 群組中,按兩下 [ 清除所有排序]。 這會從檢視中移除目前或上次儲存的篩選,並讓您依預設順序檢視記錄。