ORDER BY的語句使用對於ORDER BY 語句而言,默認值是升序排列,通常是不指定它。但升序的關鍵詞為ASC,降序為DESC。 語法結構如下::
SELECT 列字段名 FROM [工作表名稱$] ORDER BY 指定列字段名 升序(降序)
使用實例說明:
源數據:
查詢內容
對英語成績進行降序排列:
對英語成績進行升序排列:
代碼運行的結果如下:
代碼如下:
Sub FuYun_Sql_paixu() Dim cnn As Object, rst As Object Dim Mypath As String, Str_cnn As String, Sql As String Dim i As Long Set cnn = CreateObject("adodb.connection") '以上是第一步,後期綁定ADO Mypath = ThisWorkbook.FullName '以上獲取當前工作簿的路徑及名稱 If Application.Version < 12 Then '格式為.xls,調用下述語句 Str_cnn = "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & Mypath Else '格式為.xlsx,調用下述語句 Str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & Mypath End If cnn.Open Str_cnn '以上是第二步,建立鏈接 ' Sql = "SELECT * FROM [成績單$] ORDER BY 英語 asc " 'Sql語句,查詢所有數據,並按照英語成績進行排序 [f2:i1000].ClearContents '清空[e1:i1000]區域內容 Range("f2").CopyFromRecordset cnn.Execute(Sql) 'Execute語句先執行SQL語句 '使用單元格對象的CopyFromRecordset方法將SQL查詢到的內容複製到D2單元格為左上角的單元格區域 '以上是第三步,執行SQL語句並將數據讀入表格指定區域 cnn.Close '關閉鏈接 Set cnn = Nothing '釋放內存 End Sub
代碼解析
代碼我放了一個例子,大部分的代碼是一致的,只有SQL的句子不一樣。
如果需要兩列排序的SQL語句如下:
Sql = "SELECT * FROM [成績單$] ORDER BY 英語 asc,數學 asc