我第一次使用 .Sort 但通过谷歌搜索以下内容应该可以工作,但调试打印输出未排序。
Function SortByYear(ByVal z As DAO.Recordset) As String
Dim mySortedRS As DAO.Recordset
z.Sort = "Year"
Set mySortedRS = z
Do
Debug.Print mySortedRS!Year
mySortedRS.MoveNext
Loop Until mySortedRS.EOF
Set mySortedRS = Nothing
End Function
当你
Set mySortedRS = z
您不是在创建新的
Recordset
对象,您只是创建一个指向现有 Recordset
对象的新变量。要创建一个新的(已排序的)Recordset
,您需要使用
Set mySortedRS = z.OpenRecordset
欲了解更多信息,请参阅
Set rst = db.OpenRecordset(strSQL)
rst.Sort = "Year Ascending, Month Descending"
Set mySortedRS = rst.Openrecordset 'Reopen recordset with sort as