请问各位大侠,运行红色部分,rst.sort出错,提示属性的使用无效,是什么原因????????????????
Sub ReadTextFromModle()
  Dim Rst As ADODB.Recordset
  RstFiledsName = Array("Number", "SpecName")
  Set Rst = CreatSelectionHeading(RstFiledsName)
  Rst.Open
  
  For ii = 0 To sSet.Count - 1
    Set objText = sSet.Item(ii)
    With objText
      Rst.AddNew
      Rst.Fields(0).Value = Mid(.TextString, 1, InStr(.TextString, ","))
      Rst.Fields(1).Value = Mid(.TextString, InStr(.TextString, ",") + 1)
    End With
  Next ii
  With Rst
    Rst.Sort    .MoveFirst
    For ii = 0 To .RecordCount - 1
      For jj = 0 To .Fields.Count - 1
        Debug.Print .Fields(jj).Value
      Next jj
      .MoveNext
    Next ii
  End With
End SubFunction CreatSelectionHeading(RstFiledsName As Variant) As ADODB.Recordset
  Dim Rst As ADODB.Recordset
  Set Rst = New ADODB.Recordset
  For ii = 0 To UBound(RstFiledsName)
    With Rst
      .Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull
    End With
  Next ii
  Set CreatSelectionHeading = Rst
End Function

解决方案 »

  1.   

    在网上找了一下,
    Rst.Sort = "Number DESC" 提示为排序无法被应用。
    Rst.Sort = ""程序通过。
    原因何在?
    这些语句不会出错,为什么不能排序??
      Dim Rst As ADODB.Recordset 
      Set Rst = New ADODB.Recordset 
      For ii = 0 To UBound(RstFiledsName) 
        With Rst 
          .Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull 
        End With 
      Next ii 
      Set CreatSelectionHeading = Rst 
    请问各位大侠还有什么办法。谢谢
      

  2.   

    rs.sort = "字段名 asc"  '按指定字段升序排序
    rs.sort = "字段名 desc" '按指定字段逆序排序
      

  3.   

    问题找出来了
    关键是在这一条语句上
    .Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull 
    .Fields.Append RstFiledsName(ii),adInteger, , adFldMayBeNull 
    adVariant--改为adInteger程序通过,但是我要排序的是字符串
    adDbStr也不通过。
    问各位大侠,
    rst.sort不能对字符串进行排序吗???
      

  4.   



    能.如果下面字段用來存字符串,則將
    .Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull 改為
    .Fields.Append RstFiledsName(ii), adVarChar,50 , adFldMayBeNull

    以下列出各類型常量的說明:常量 说明 
    AdArray 与其他类型一起加入逻辑 OR 以指示该数据是那种类型的安全数组 (DBTYPE_ARRAY)。 
    AdBigInt 8 字节带符号的整数 (DBTYPE_I8)。 
    AdBinary 二进制值 (DBTYPE_BYTES)。 
    AdBoolean 布尔型值 (DBTYPE_BOOL)。 
    adByRef 与其他类型一起加入逻辑 OR 以指示该数据是其他类型数据的指针 (DBTYPE_BYREF)。 
    adBSTR 以空结尾的字符串 (Unicode) (DBTYPE_BSTR)。 
    adChar 字符串值 (DBTYPE_STR)。 
    adCurrency 货币值 (DBTYPE_CY)。货币数字的小数点位置固定、小数点右侧有四位数字。该值保存为 8 字节范围为 10,000 的带符号整型值。 
    adDate 日期值 (DBTYPE_DATE)。日期按双精度型数值来保存,数字全部表示从 1899 年 12 月 30 开始的日期数。小数部分是一天当中的片段时间。 
    adDBDate 日期值 (yyyymmdd) (DBTYPE_DBDATE)。 
    adDBTime 时间值 (hhmmss) (DBTYPE_DBTIME)。 
    adDBTimeStamp 时间戳(yyyymmddhhmmss 加 10 亿分之一的小数)(DBTYPE_DBTIMESTAMP). 
    adDecimal 具有固定精度和范围的精确数字值 (DBTYPE_DECIMAL)。 
    adDouble 双精度浮点值 (DBTYPE_R8)。 
    adEmpty 未指定值 (DBTYPE_EMPTY)。 
    adError 32 - 位错误代码 (DBTYPE_ERROR)。 
    adGUID 全局唯一的标识符 (GUID) (DBTYPE_GUID)。 
    adIDispatch OLE 对象上 Idispatch 接口的指针 (DBTYPE_IDISPATCH)。 
    adInteger 4 字节的带符号整型 (DBTYPE_I4)。 
    adIUnknown OLE 对象上 IUnknown 接口的指针 (DBTYPE_IUNKNOWN)。 
    adLongVarBinary 长二进制值(仅用于 Parameter 对象)。 
    adLongVarChar 长字符串值(仅用于 Parameter 对象)。 
    adLongVarWChar 以空结尾的长字符串值(仅用于 Parameter 对象)。 
    adNumeric 具有固定精度和范围的精确数字值 (DBTYPE_NUMERIC)。 
    adSingle 单精度浮点值 (DBTYPE_R4)。 
    adSmallInt 2 字节带符号整型 (DBTYPE_I2)。 
    adTinyInt 1 字节带符号整型 (DBTYPE_I1)。 
    adUnsignedBigInt 8 字节不带符号整型 (DBTYPE_UI8)。 
    adUnsignedInt 4 字节不带符号整型 (DBTYPE_UI4)。 
    adUnsignedSmallInt 2 字节不带符号整型 (DBTYPE_UI2)。 
    adUnsignedTinyInt 1 字节不带符号整型 (DBTYPE_UI1)。 
    adUserDefined 用户定义的变量 (DBTYPE_UDT)。 
    adVarBinary 二进制值(仅 Parameter 对象)。 
    adVarChar 字符串值(仅 Parameter 对象)。 
    adVariant 自动变体型 (DBTYPE_VARIANT)。 
    adVector 与其他类型一起加入逻辑 OR 中,指示数据是 DBVECTOR 结构(由 OLE DB 定义)。该结构含有元素的计数和其他类型 (DBTYPE_VECTOR) 数据的指针。 
    adVarWChar 以空结尾的 Unicode 字符串(仅 Parameter 对象)。 
    adWChar 以空结尾的 Unicode 字符串 (DBTYPE_WSTR)。 
      

  5.   

    能.如果下面字段用來存字符串,則將 
    .Fields.Append RstFiledsName(ii), adVariant, , adFldMayBeNull 改為 
    .Fields.Append RstFiledsName(ii), adChar,255 , adFldMayBeNull